首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

Flex中对swf资料的操作

2012-10-07 
Flex中对swf文件的操作private var swfObj:Objectprivate function swfComplete(evt:Event):void{????//

Flex中对swf文件的操作

private var swfObj:Object;

private function swfComplete(evt:Event):void{

????//对swfObj赋值,通过操作swfObj来控制加载的swf文件;

?????swfObj= SWFLoader(evt.target).content;

}

?

?

第二类: Flex中操作 mxml格式生成的 swf;

<mx:SWFLoader id="swfLoader" source="[加载的swf文件]"complete="swfComplete(event)"updateComplete="swfUpdateCom(event)"?/>

private var swfObj:Object;

private var swfSM:SystemManager;

private function swfComplete(evt:Event):void{

????swfSM = SystemManager(SWFLoader(evt.target.content));

????//在这里不能直接对 swfObj进行赋值,因为此时 swfSM.application 的值为 null;

}

private function swfUpdateCom(evt:Event):void{

????//对swfObj赋值,通过操作swfObj来控制加载的swf文件;

????if(swfSM!=null &&swfObj==null){

??????????swfObj = swfSM.application;

????}

????//假如要在子swf中调用主swf函数需要在 子swf中设置一个Object类型的变量,给此变量赋值

????if(swfObj!=null){

??????????// _parentObj 是子swf中变量,可以通过它来调用主swf属性及函数;

??????????swfObj._parentObj = this;

????}

}

?

操作加载swf文件的前提:知道swf文件内的公有属性和方法名;

?

?

Flex中使用Flash类库中的元件

?

private var swfUrl=""; //库资源地址

private var ui:UIComponent =? newUIComponent();

private var loader:Loader = new Loader();

private var context:LoaderContext =? newLoaderContext();

private function init():void{

????//指定为当前域;

????context.applicationDomain=ApplicationDomain.currentDomain;

????//加载外部的swf库?loader.load()中的第2个参数?用来确定是否能使用加载的SWF中的库;??

?????loader.load(new?URLRequest(swfurl),?context);??

?????loader.contentLoaderInfo.addEventListener(Event.COMPLETE,?onComplete);??

}

private function onComplete(evt:Event):void{

????//得到类

????var classByName:Class =ApplicationDomain.currentDomain.getDefinition("元件名")?as?Class;??

????var mc:MovieClip = new classByName(); //从库中导出资源

????mc.x = 300;

????mc.y = 300;

????//添加到场景中;

????ui.addChild(mc);

????this.addChild(ui);

}

?

?

?在加载 swf 过程中 会出现 内存泄露的情况;

?解决方法:

?swfLoader.unloadAndStop(); //加载前先卸载;

?System.gc();? //调用垃圾回收方法;

?

?如有不当之处请批评指正。

热点排行