flash AS3.0访问加载的SWF文件中的属性、方法以及类、库中的影片剪辑
对于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文件中的属性、方法以及类、库中的影片剪辑相关推荐
- flex加载外部swf文件[flex-swf and flash as3 swf],并且互相通讯-加强原来的帖
第一步:建立加载类[CtmObjLoader],此类可以加载文件类型 [图片文件或swf文件] package { import flash.display.DisplayObject; impor ...
- 每天学一点flash (20) flash cs3.0 外部加载图片
今天开始看了一些外部加载图片的,因为as3.0 外部加载已经没有没有了loadMovie类,所以as3.0要转变思想了.可是迷惘的事情特别多,之前看了一些关于容器的那些东西,看不懂.也许我还没有入门吧 ...
- flash as3使用,播放声音和加载外部声音文件
[as3]使用声音 在AS3中使用声音跟AS2有很大的不同.先看下Flash帮助中的一些介绍,然后我们再使用导入到Flash中的声音做个小测试. 理解声音的结构 应用程序可以从4个地方加载声音: 运行 ...
- Asp.net2.0动态加载用户控件的三种方法
方法一: 直接拖放的用户控件 <!--这是某个aspx页--> ..... <%@ Register Src="TestControl.ascx" TagName ...
- Flash as3.0 保存MovieClip运动轨迹到json文件
//放在第一帧调用 import flash.events.Event; import flash.display.MovieClip; stage.addEventListener(Event.EN ...
- google支持本地ajax,360chrome,google chrome浏览器使用jquery.ajax加载本地html文件
使用360chrome和google chrome浏览器加载本地html文件时,会报错,提示: XMLHttpRequest cannot load file:///Y:/jswg/code/html ...
- flutter html 加载_Flutter开发:项目加载本地html文件的步骤
Flutter开发会遇到各种各样的技术,而且flutter开发带来了新的"技术革命",解放了iOS单一开发和Android单一开发所带来的巨大成本问题,一套flutter代码可以适 ...
- miui系统负一屏快递详情“显示数据加载异常,请点击重试”的解决方法
miui系统负一屏快递详情"显示数据加载异常,请点击重试"的解决方法 1.下载链接中,后缀为xml和bak的两个快应用服务框架的备份包 2.使用小米,设置 – 本地备份 功能 随便 ...
- html加载swf 进度条,Flash加载外部文件创建进度条3种方法
Flash加载外部文件创建进度条3种方法 互联网 发布时间:2008-10-07 09:36:14 作者:佚名 我要评论 加载外部文件的进度条(看帮助文档整理),只适合那些不愿看帮助文档的 ...
最新文章
- 帮AI摆脱“智障”之名,NLP这条路还有多远?
- MySQL优化篇:执行计划explain中key_len计算方式
- C++知识点记录(C++ primer)
- Docker入门-数据挂载
- 利用C#自带组件强壮程序日志
- SpringBoot项目请求路径中有正反斜杠的处理办法
- jQuery模拟鼠标点击事件失效的问题
- 卫星通信(SATCOM)设备的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- VC 使用msxml6.dll动态链接库中的函数读写XML文件
- 期末排名算不算计算机成绩,智学网怎么看年级排名 智学网如何查看期末考试成绩...
- android 7.0低电耗Doze模式
- matlab编写的程序输入参数怎么写,MATLAB|标准参数输入对话框创建
- php汽车保养oa,汽车行业oa管理系统
- 基于PP-OCR训练表格识别模型
- 深造分布式 打败面试官 招式一 小试牛刀
- 使用echarts完成中国省市区县镇地图展示
- linux学习lesson16
- 在 Lenovo G360 笔记本上安装 Debian Squeeze AMD64
- 一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式
- Docker系列---docker cgroup资源管理 | TLS通讯加密 | 详细讲解
热门文章
- Java笔试——2021届秋招编程题汇总
- 机器人学习--栅格地图(occupancy grid map)构建
- Spring4 MVC + REST + List + Bootstrap 简单示例
- 北斗导航 | 读取ground truth data(python源代码)
- Qt学习(二):菜单栏、工具栏和对话框
- 边缘检测的简单例子(MATLAB)
- Python 网络爬虫笔记3 -- Beautiful Soup库
- Python实现kNN算法
- 【机器学习】数据挖掘实战:金融贷款分类模型和时间序列分析
- 【学术相关】TopPaper:AI 初学者经典论文列表