AS3运行时加载外部库,调用swf中的库
来源:互联网 发布:诸城明诚学校网络平台 编辑:程序博客网 时间:2024/05/16 15:59
使用Flash Builder创建ActionScript项目,最苦恼的事情莫过于没有素材了。如果能通过运行时加载的方式提供素材,那么开发起项目来就事半功倍了!下面介绍的,正是这种运行时加载素材的方式。
【例1】
最近在网上看到一篇关于ApplicationDomain类的文章,有兴趣的朋友不防也去看看,
网址:http://eidiot.net/
参考:http://oliwen.blog.163.com/blog/static/38057532200772891112440/
浅显的研究了一下,发现用这个类竟可以调用加载进来的SWF库文件,嘿嘿,以后做大型的网络开发,这个功能可就能派上大用场了.现将代码公视如下:
var loader : Loader = new Loader();
var context : LoaderContext = new LoaderContext(true, ApplicationDomain.currentDomain);
context.applicationDomain = ApplicationDomain.currentDomain;
//context.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
这是我写在针上做的一个测试,m2为加载进来的SWF,Tm为m2库中的链接类名.
loader.load(new URLRequest("m2.swf"), context);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadcom);
function loadcom(the:Event):void
{
var runtimeClassRef:Class = getClass("Tm");
var greeter:MovieClip = new runtimeClassRef();
addChild(greeter);
greeter.x=100;
greeter.y=200;
function getClass(className:String):Class
{
}
}
【例2】
---------------------LittleSpace 扩展修改------------------------------
SkinOverAllNoCaption.swf 为FLVPlayBack 组件的一个皮肤~
我这里只调用一个舞台上的按钮【"playpause_mc"】,播放暂停按钮,
此按钮的链接名为:fl.video.skin.PlayButtonNormal
舞台第一帧书写 : this.playButtonNormalState = "fl.video.skin.PlayButtonNormal";
Ctrl+Enter发布SkinOverAllNoCaption.swf
然后新建一个fla,在第一帧写入:
var request:URLRequest = new URLRequest("SkinOverAllNoCaption.swf");
var loader:Loader = new Loader();
var skinTemplate;//注意这里不能定义类型,否则出错[访问未定义的属性]
loader.contentLoaderInfo.addEventListener (Event.COMPLETE, loadComplete);
loader.load (request);
function loadComplete (event:Event):void
{
skinTemplate = Sprite(loader.content);
trace (skinTemplate );
addChild (skinTemplate );
trace (skinTemplate.pauseButtonOverState);
trace (skinTemplate.playpause_mc);
//与加载swf交互
skinTemplate.playpause_mc.addEventListener (MouseEvent.CLICK,clickHandler);
}
function clickHandler (e)
{
//获得加载的swf中的库的定义
var runtimeClassRef:Class = getClass(skinTemplate.playButtonNormalState);
//或者使用这句
// var runtimeClassRef:Class = getClass("fl.video.skin.PlayButtonNormal");
trace (runtimeClassRef is Class);
var greeter:MovieClip = new runtimeClassRef();
addChild (greeter);
}
function getClass (className:String):Class
{
return loader.contentLoaderInfo.applicationDomain.getDefinition(className) as Class;
}
- AS3运行时加载外部库,调用swf中的库
- AS3 加载外部SWF资源
- AS3加载外部swf资源库中的元件(MovieClip)
- AS3 调用外部SWF中元件库中的元件
- 通过AS3加载外部SWF文件,调用外部文件文档类的方法
- 如何通过AS3加载外部SWF文件,调用外部文件文档类的方法?
- Flash as3加载外部swf和exe
- as3.0加载外部swf 获取里面的变量
- AS3 FLASH,加载外部swf的loading方法
- as3 调用外部资源文件(swf文件、图片文件)
- AS3:加载swf
- 【as3】外部swf动画复制
- flex加载外部swf文件[flex-swf and flash as3 swf],并且互相通讯-加强原来的帖
- 加载外部的swf
- AS3如何加载自身SWF
- AS3加载swf与ApplicationDomain
- as3.0 mc加载.swf
- AS3预加载SWF实例
- Flash与C#通信
- spring的三种注入方式
- Linux的bg和fg命令
- Unity--触摸ScrollView
- TS流解析之PAT表格解析
- AS3运行时加载外部库,调用swf中的库
- 2013武科大蓝桥杯校内选拔赛 I题 划分数
- asp.net GridView 总结备忘
- 优化数据库访问速度时考虑的九大因素
- JS 对象属性"可枚举"
- ubuntu rsync inotify 配置
- 使用最广泛的Java库
- 常见SQL(字符串拼接)
- msdn关于dll的介绍