相关代码如下
<mx:SWFLoader id="swfLoader" source="[加载的swf文件]" complete="swfComplete(event)" />
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 = new UIComponent();
private var loader:Loader = new Loader();
private var context:LoaderContext = new LoaderContext();
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(); //调用垃圾回收方法;
如有不当之处请批评指正。
转载自:http://greenexe.javaeye.com%2Fblog%2F911299
相关推荐
一个简单的flex加载外部swf文件并对其进行操作的源码程序
很久之前无聊的时候用flex实现的一个BullBreaker小游戏,点击小球可消除周围同色小球,可以回滚操作至起始状态。swf格式的可以直接在视频播放器中打开来玩,也可以打开html文件在浏览器中玩(需要flash支持)。
DoSWF是一款针对flash(swf)进行加密、混淆、添加水印等操作的绿色免安装软件。支持最新的flash10、alchemy以及flex4所编译出来的swf文件
转换过程一键生成,无需任何人工对文档进行解析操作。 相对于旧版本,所有 V8 中使用的文档阅读器全部采用 Adobe 最新版的 Flex + AS3 开发,具有较高的性能优势;V8 中的使用的文档阅读器也全部针对现在主流的液晶...
从SWF文件中嵌入皮肤 9.15节.编程实现组件应用皮肤 9.16 节. 编程实现状态控件的皮肤 9.17 节. 从SWF 文件中生成动态皮肤 9.18 节. 自定义引导界面 第十章. 拖拽操作(360) 10.1.节使用DragManager 类 10.2 节指定...
FlashDevelop是基于微软的.net技术开发的一款FLASH IDE!...FLEX SDK(SWF文件编译器) Java 1.6+(对FLEX SDK提供功能支持) 以上三个软件配置完成后您就可以正常使用您的FlashDevelop中文版软件了
真正解决我问题的操作是这样的,在安装 arcgis后,C:\Inetpub\wwwroot\ArcGis\rest\的下面有个crossdomain.xml,把这个文件复制到C:\Inetpub\wwwroot的下面就可以了。 或者直接下载文件复制到里面就可以解决。
看到flash和asp文件时面变量名就知道相互是怎么传送的呢,对于数据库的一些插入,更新,查询的操作,只要接收flash的数据,直接运行asp相关数据库操作命令就行了.直接复制到IIS的路径下即可测试.在线观看地址:...
依次展示如何使用 Flex Air 的 ServerSocket 和 Socket 实现简化版本的 HTTP 服务器,以及如何加载外部的 SWF 文件并进行操作。 在 mplayer.swf 内部,使用 FlasCC 集成 C 代码做保护。使用了 Hessian 做对象序列化...
从导入到安全域的SWF文件加载嵌入内容 使用旧内容 设置LocalConnection权限 控制外出URL访问 共享对象 摄像头、麦克风、剪贴板、鼠标和键盘访问 AIR安全性 第章:如何使用ActionScript示例 示例类型 在...
8.2.3在FlexBuilder3中进行调试 155 8.3处理ActionScript3.0中的异常 160 8.3.1使用try…catch…finally语句 160 8.3.2throw语句主动抛出异常 162 8.3.3处理异常事件 163 8.4异常类型 163 8.4.1异常对象 164 8.4.2...
我从一个获得了该文件,因为我真的不想下载 Flex 并制作它。 要使用它,只需按照以下简单步骤操作: ; 将粘贴到 Helium 上; (optional)默认情况下,窗口将为 320x240。 如果要更改宽度并保持比例,请按“s”...
帮助解决网页和JS文件中的中文编码问题的小工具 慎用const关键字 装箱,拆箱以及反射 动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/catch语句带来的warning 微软的应试题完整版(附答案) 一个...
2012-06-11 09:50 3,412,722 内部文件非内部程序员禁止访问谢谢1234567890123456789能够实现文件的多选,统一上传,从而实现文件的批量上传Flex多文件上传源码VS2005.rar 2012-06-11 10:08 1,481,225 几个C语言小...
本例中所用的技术 7.2. simple-parent项目 7.3. simple-model模块 7.4. simple-weather模块 7.5. simple-persist模块 7.6. simple-webapp模块 7.7. 运行这个Web应用 7.8. simple-command模块 7.9. 运行这...