对于FLASH,我们可以把任何的可视化元件都看成某个类文件的具体实例,包括swf文件。
我们可以把swf文件看成一个类的具体实例,而它里面拥有个个其他类的实例对象,例如:
我们新建一个loaded.fla文件,然后我们建立一个影片剪辑元件,你可以在它的内部做一些动画处理,打开库,单击元件右建,选择“链接”打开“链接属性”,在类的输入框里我们键入“MyClass”

这样一来我们就可以把这个元件作为一个类--MyClass。也就是说我们可以通过new来构建这个元件的具体实例并显示在舞台,如:

var test:MyClass=new MyClass();
addChild(test);

然而ApplicationDomain类能够获得swf文件的应用程序域,通过getDefinition方法可以从指定的应用程序域获取一个公共定义。 该定义可以是一个类、一个命名空间或一个函数的定义,但是,访问被加载的swf中的属性和方法就不需要ApplicationDomain类,直接访问即可。代码如下

package
{import flash.display.Loader;import flash.display.LoaderInfo;import flash.display.MovieClip;import flash.display.Sprite;import flash.events.Event;import flash.net.URLRequest;import flash.system.ApplicationDomain;/***@author hypo.chen*@E-mail 645338868@qq.com*@data 2015-9-10*/[SWF(width="1024",height="768",frameRate="60")]public class GetAppDomain extends Sprite{private var _lrd:Loader;private var _urlR:URLRequest;public function GetAppDomain(){init();}private function init():void{_urlR = new URLRequest("loaded.swf");_lrd = new Loader();_lrd.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaded);_lrd.load(_urlR);}private function onLoaded(e:Event):void{//直接访问被加载的swf中的属性和方法,但是定义的属性和方法必须是publice.target.content.testFun();trace(e.target.content.testVar);//LoaderInfo对象承载载入swf文件的信息var swfTarget:LoaderInfo = e.target as LoaderInfo;var appDomain:ApplicationDomain = swfTarget.applicationDomain as ApplicationDomain;//访问被加载的swf库中链接的类var mcClass:Class = appDomain.getDefinition("MyClass") as Class;var mcA:MovieClip = (new mcClass()) as MovieClip;var mcB:MovieClip = (new mcClass()) as MovieClip;this.addChild(mcA);mcA.x = 100;mcA.y = 100;mcA.alpha = .5;this.addChild(mcB);mcB.x = 400;mcB.y = 100;//访问被加载的swf库中的文档类var _test:Class = appDomain.getDefinition("Test") as Class;}}
}

loaded.fla文档类代码如下:

package
{import flash.display.MovieClip;public class Test extends MovieClip{public var testVar:String = "testVar";public function Test (){// constructor codetrace("test")}public function testFun():void{trace("testFun");}}}

转载于:https://www.cnblogs.com/chen-mo/p/4798243.html

flash AS3.0访问加载的SWF文件中的属性、方法以及类、库中的影片剪辑相关推荐

  1. flex加载外部swf文件[flex-swf and flash as3 swf],并且互相通讯-加强原来的帖

    第一步:建立加载类[CtmObjLoader],此类可以加载文件类型 [图片文件或swf文件] package { import flash.display.DisplayObject;  impor ...

  2. 每天学一点flash (20) flash cs3.0 外部加载图片

    今天开始看了一些外部加载图片的,因为as3.0 外部加载已经没有没有了loadMovie类,所以as3.0要转变思想了.可是迷惘的事情特别多,之前看了一些关于容器的那些东西,看不懂.也许我还没有入门吧 ...

  3. flash as3使用,播放声音和加载外部声音文件

    [as3]使用声音 在AS3中使用声音跟AS2有很大的不同.先看下Flash帮助中的一些介绍,然后我们再使用导入到Flash中的声音做个小测试. 理解声音的结构 应用程序可以从4个地方加载声音: 运行 ...

  4. Asp.net2.0动态加载用户控件的三种方法

    方法一: 直接拖放的用户控件 <!--这是某个aspx页--> ..... <%@ Register Src="TestControl.ascx" TagName ...

  5. Flash as3.0 保存MovieClip运动轨迹到json文件

    //放在第一帧调用 import flash.events.Event; import flash.display.MovieClip; stage.addEventListener(Event.EN ...

  6. google支持本地ajax,360chrome,google chrome浏览器使用jquery.ajax加载本地html文件

    使用360chrome和google chrome浏览器加载本地html文件时,会报错,提示: XMLHttpRequest cannot load file:///Y:/jswg/code/html ...

  7. flutter html 加载_Flutter开发:项目加载本地html文件的步骤

    Flutter开发会遇到各种各样的技术,而且flutter开发带来了新的"技术革命",解放了iOS单一开发和Android单一开发所带来的巨大成本问题,一套flutter代码可以适 ...

  8. miui系统负一屏快递详情“显示数据加载异常,请点击重试”的解决方法

    miui系统负一屏快递详情"显示数据加载异常,请点击重试"的解决方法 1.下载链接中,后缀为xml和bak的两个快应用服务框架的备份包 2.使用小米,设置 – 本地备份 功能 随便 ...

  9. html加载swf 进度条,Flash加载外部文件创建进度条3种方法

    Flash加载外部文件创建进度条3种方法 互联网   发布时间:2008-10-07 09:36:14   作者:佚名   我要评论 加载外部文件的进度条(看帮助文档整理),只适合那些不愿看帮助文档的 ...

最新文章

  1. 帮AI摆脱“智障”之名,NLP这条路还有多远?
  2. MySQL优化篇:执行计划explain中key_len计算方式
  3. C++知识点记录(C++ primer)
  4. Docker入门-数据挂载
  5. 利用C#自带组件强壮程序日志
  6. SpringBoot项目请求路径中有正反斜杠的处理办法
  7. jQuery模拟鼠标点击事件失效的问题
  8. 卫星通信(SATCOM)设备的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  9. VC 使用msxml6.dll动态链接库中的函数读写XML文件
  10. 期末排名算不算计算机成绩,智学网怎么看年级排名 智学网如何查看期末考试成绩...
  11. android 7.0低电耗Doze模式
  12. matlab编写的程序输入参数怎么写,MATLAB|标准参数输入对话框创建
  13. php汽车保养oa,汽车行业oa管理系统
  14. 基于PP-OCR训练表格识别模型
  15. 深造分布式 打败面试官 招式一 小试牛刀
  16. 使用echarts完成中国省市区县镇地图展示
  17. linux学习lesson16
  18. 在 Lenovo G360 笔记本上安装 Debian Squeeze AMD64
  19. 一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式
  20. Docker系列---docker cgroup资源管理 | TLS通讯加密 | 详细讲解

热门文章

  1. Java笔试——2021届秋招编程题汇总
  2. 机器人学习--栅格地图(occupancy grid map)构建
  3. Spring4 MVC + REST + List + Bootstrap 简单示例
  4. 北斗导航 | 读取ground truth data(python源代码)
  5. Qt学习(二):菜单栏、工具栏和对话框
  6. 边缘检测的简单例子(MATLAB)
  7. Python 网络爬虫笔记3 -- Beautiful Soup库
  8. Python实现kNN算法
  9. 【机器学习】数据挖掘实战:金融贷款分类模型和时间序列分析
  10. 【学术相关】TopPaper:AI 初学者经典论文列表