快速业务通道

AS3教程:使用Loader类载入外部swf传参数

作者 凌众技术 来源 网页制作 浏览 发布时间 2012-03-08

如果你在做flash开发,这个应该是经常碰到的事情:用a.swf加载b.swf,然后需要在b.swf中调用a.swf的方法或者变量。在as2里面实现这个很简单,root就是万能的。在a.swf中,用loadMovie的方法load b.swf到一个MovieClip后,b.swf就可以通过_root或者_parent来访问a.swf中的变量了。不过这招在AS3中已经不灵了,得换个方式。

在as3中,有这样一种方式可以实现:在a.swf中,使用Loader类来load b.swf,在load完成之后,调用b.swf中的一个方法,把a.swf的引用传入或者把相应变量传入给b.swf。一个简单的例子如下:

在a.swf的文档类或者时间轴上这么写:

参考代码:
// 这个是我们要访问的变量 
var ab:String = ’1234’; 
// 加载b.swf 
var ldr : Loader=new Loader(); 
ConfigureListeners(ldr.contentLoaderInfo); 
ldr.load(new URLRequest("b.swf")); 
function ConfigureListeners(dispatcher:IEventDispatcher):void { 
dispatcher.addEventListener(Event.COMPLETE, CompleteHandler); 

function CompleteHandler(e : Event):void { 
this.addChild(e.target["content"]); 
// 调用b.swf中的方法 
e.target["content"].getP(this); 

在b.swf的文档类或者时间轴上这么写:

参考代码:


function getP(p:Object):void{ 
// 访问a.swf中的变量ab 
trace(p.ab); 

这样就OK了~

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号