[转帖]外部swf库资源载入及使用

Jun , 21 , weilaixu , 10:42 , ActionScript 3 , 评论(0) , 引用(0) , 阅读(2341) , Via 本站原创 | |
[转帖]外部swf库资源载入及使用

具体出自哪里已经不记得了,如果谁知道请告知,我好加上。
外部swf库资源载入及使用
  如果不知道怎么载入swf文件,请先看 Coding ActionScript 3.0 [3] 外部swf文件载入。
很多的时候我们并不希望我们的项目就是一个超级大的swf文件,尤其是在as3中,你可以做到代码与界面的分离,所以,将资源放在一个一个的swf文件中成为必要。那么如果载入和使用这些外部的swf资源呢?不要着急,先喝口水。。。。
在as2中你可以在加载完swf库文件后使用attachMovie将元件添加进来,看上去很方便,其实,as3提供了更方便的方式来,下面请听我慢满道来......
  首先我们要来了解一下as3的一个新特性,那就是attachMovie这个方法没有了(废话),取代它的是addChild。任何的MC我们都需要new 出来,然后addChild另一个MC中,所以,你加载进来的swf文件事实上也是一个mc(实际是DisplayObject,DisplayObject是什么,你得看帮助了。),对于一个DisplayObject,你可以做什么?attachMovie?不,这个方法没有了!那么。。。new ?,对了!首先,你可以在库文件中(我这里把它叫:lib.fla),建立一个元件,class名称为Lib,至于里面的动画什么的,你自己做。然后在主场景第一帧写这样的代码:

function getMC(id:String):MovieClip{
try{
var ClassReference:Class = getDefinitionByName(id) as Class;
}catch(e:Error){
trace(e);
return new MovieClip();
}
var instance:Object = new ClassReference();
return instance;
}

完了一可以测试一下:

var mc:MovieClip = getMC("Lib");
this.addChild(mc);

如果你可以看到你的元件被加载,那么恭喜你,你成功跨出第一步了。这里需要提到的是getDefinitionByName方法,他是as3的一个新方法,你可以通过ClassName来获得Class对象。
OK,你可以建立你的主程序了,我这里建立了一个main.fla文件,在第一帧加入这样的代码:

var loaderoader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadCompleteHanlder);
loader.load(new URLRequest("lib.swf"));
//资源加载完成
function loadCompleteHanlder(e:Event):void{
var lib:MovieClip = e.target.content.getMC("Lib");
this.addChild(lib);
lib.x = lib.y = 100;
}

然后,发布!

最新日志 随机日志 综合排行
镜头里的你们
立志,从现在起,做一个电脑白痴!
821深圳webrebuild图...
指引更工业化的设计
网页设计进阶之十二 -- 快速设...
网页设计进阶之十一 -- 快速设...
小S的充气娃娃
态度
你的电脑是男是女?
PPT分享:HTML5和CSS3...
Opera下,OL的li在使用l...
养成良好的工作习惯
关于输入法
很赞的眩光笔刷
SupperMario
韩国筝和日本筝
汝之罪,罄竹难书矣!谁之过?
PPT分享:HTML5和CSS3...
听写·陆游《卧春》
DM 8 中关于控制FLASH透...
是时候了,前端架构师
章八--忆凤龙画室(一)
Baby--猜猜是谁的宝宝
ActionScript 2 学...
英文符号大全 罗马符号大全 常用...
讨论:间距浮动与对齐的最佳方案-...
关于未来
网页设计进阶之八--层次、空间(...
中国风·江南风韵·古典风格·中国...
应CC同学强烈要求,未来劳夜更新...
赤壁 音乐下载 赤壁MP3下载 ...
CSS布局命名规范
听写·陆游《卧春》
网页设计进阶之七-- 给那些效率...
CSS框架/命名/规则 &...
网页设计进阶之六-- 守住那些不...