zoukankan      html  css  js  c++  java
  • 复制外部加载的swf

    复制外部加载的swf是一个相对高级的操作,步骤比较多,过程相对复杂,要阐述清楚原理细节需要很大篇幅的文字,因此,这里我就偷懒不详细写说明了,纯用代码来说明问题,希望对看得懂的朋友起到抛砖引玉的作用。
    方法1——ByteArray深度复制

    1. var byteLoader:URLLoader = new URLLoader(); 
    2. byteLoader.dataFormat = URLLoaderDataFormat.BINARY; 
    3. byteLoader.addEventListener(Event.COMPLETE, loadCompleteHandler); 
    4. var loader:Loader = new Loader(); 
    5. loader.y = 200; 
    6. addChild(loader); 
    7. loader.contentLoaderInfo.addEventListener(Event.INIT, loadInitHandler); 
    8. function loadInitHandler(evt:Event):void 
    9. var cloneLoder:Loader = new Loader(); 
    10. addChild(cloneLoder); 
    11. cloneLoder.loadBytes(byteLoader.data); 
    12. byteLoader.load(new URLRequest("t.swf")); 
    13. function loadCompleteHandler(evt:Event):void 
    14. loader.loadBytes(byteLoader.data); 

      简单原理:用URLLoader将外部的swf以二进制数据格式加载到ByteArray中,然后用Loader类的loadBytes去加载URLLoader中的ByteArray。
    方法2——ApplicationDomain 运行时动态类复制

    1. var loader:Loader = new Loader(); 
    2. loader.y = 200; 
    3. addChild(loader); 
    4. loader.contentLoaderInfo.addEventListener(Event.INIT, loadInitHandler); 
    5. var context:LoaderContext = new LoaderContext(); 
    6. context.applicationDomain=ApplicationDomain.currentDomain; 
    7. loader.load(new URLRequest("t.swf"), context); 
    8. function loadInitHandler(evt:Event):void 
    9. var ClassRef:Class = loader.contentLoaderInfo.applicationDomain.getDefinition("TestClass") as Class; 
    10. var clone_mc: MovieClip = new ClassRef(); 
    11. addChild(clone_mc); 

    注意:
    以上两种复制方法,由于都需要加载swf文件,因此需要文件级别的本地安全性;
    使用第二种方法(ApplicationDomain)时,生成“t.swf”时必须为舞台添加文档类属性。添加的文档类可以是具体的外部as类,也可以仅仅是一个名字。上例中我添加的文档名为”TestClass”, getDefinition("TestClass")中填的参数内容应该跟要复制的swf的文档类名相同。
    ApplicationDomain还有更多高级用法,有兴趣的高级AS程序员可以去研究一下。

  • 相关阅读:
    Excel常用公式函数之文本查找某个符号
    Excel常用公式函数之日期格式转换成文本格式
    Excel常用公式函数之数据是否相等
    Excel常用公式函数之数据筛选、数据统计
    Excel常用公式函数之字符串拼接、字符串连接
    Excel常用公式函数之MID文本提取
    Excel常用技巧汇总
    netty面试题整理
    mqtt通配符订阅
    SQL | substring_index 字符串拆分
  • 原文地址:https://www.cnblogs.com/regalys168/p/4083097.html
Copyright © 2011-2022 走看看