论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

Loader类载入外部swf传参数

文章类别:Flash AS | 发表日期:2010-3-21 9:41:19

如果你在做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); 
}

视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058