[原创]AS3.0使用外部SWF文件的库文件

  在swf文件中使用外部swf文件的库文件,从而达到类似素材包的目的。
  第一个文件pic.fla,添加四张图片到库中,为每一张图片关联一个类,我关联的类名分别是a1、a2、a3、a4,并在第一帧导出(关联时会把图片名字默认为关联的类名,文件编译的时候会自动生成一个类)。再创建一个as文件Pic.as作为pic.fla的文档类,内容如下:

package {
import flash.display.MovieClip;
public class Pic extends MovieClip {
public static const arr:Array=[a1,a2,a3,a4];
public function Pic() {

}
public function getPic(n:int):* {
var c:Class=arr[n];
var movie:*=new c;
return movie;
}
}
}

公共方法getPic()是用来返回库中的素材图片的,这里只设计里一个参数——素材编号来获得需要的素材,现实项目中可以定义更多的获取规则。“new c”的实例化过程也可以放到外部,以剥离该功能。

第二个文件load.fla,这个文件就是把pic.fla文件当成外部素材包加载的,为了实验简便,就没有给load.fla做文档类,而直接把代码写在了帧上。代码如下:

var loader:Loader=new Loader();
var url:URLRequest=new URLRequest("pic.swf");
loader.load(url);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCom);
function onCom(e:Event){
var m:*=e.target.content;
addChild(m.getPic(0));
}

当加载完成后,调用pic.swf的getPic()方法,传递要获得的素材编号即可获得该素材。这样,就可以在不修改load.fla的情况下修改项目的素材了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值