作者jeaby (洁比)
看板Flash
标题Re: [问题] 抓外部AS档变数问题
时间Wed Jul 20 17:16:33 2011
※ 引述《fake01 (ya da)》之铭言:
: 请问如何抓取汇入外部AS档的变数?
: var Tlke:URLRequest = new URLRequest("MOVE_GAME/NewGame.swf");
: var Tlkeloader:Loader = new Loader();
: Tlkeloader.load(Tlke);
: addChild(Tlkeloader);
这问题我刚好最近遇到
而且你要问的应该是怎麽抓取汇入外部 "SWF" 的变数吧?
首先给 Tlkeloader 加个 event
Tlkeloader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
private function onLoaded(e:Event):void
{
var childMC:MoiveClip = e.currentTarget.content as MovieClip;
// 这时候childMC就等於载入的.swf了
// 然後要怎麽抓变数,call function都没问题了!
childMC.roleName; // 抓变数
childMC.run(); // call function
}
--------------
这边是 NewGame.swf 的内容
看要写在 .as 或是 frame 都可以
假设写在 frame
var roleName:String = "jeaby";
function run():void
{
// do something
}
---------------
补充一下你前面文章的问题
假设你要在 NewGame.swf 中的某个按钮remove自己
//用刚刚上面的 run
function run():void
{
parent.removeChild(this);
// 但是实际跑了之後会跑出错误说loader没有removeChild这个函数
}
所以要修改"this"的型态
回到最上面的 onLoaded
private function onLoaded(e:Event):void
{
var childMC:MoiveClip = e.currentTarget.content as MovieClip;
// .swf 载入完成後再addChild
// addChild(Tlkeloader) 所以这行也不用加了;
addChild(childMC);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.104.252.179
1F:推 fake01:请问没给路径怎麽载入swf 第一段的程式码内的function 07/21 11:52
2F:→ fake01:不会执行耶 07/21 11:52
4F:推 fake01:了解,如果我要抓child的as档 07/21 12:30
5F:→ fake01:变数? 该如何做 07/21 12:30
6F:→ jeaby:一样在child.as给个变数 public var abc:string = "abc"; 07/21 12:38
7F:→ jeaby:main.as里在去抓 childmc.abc 就可以了 07/21 12:38
※ 编辑: jeaby 来自: 59.104.252.179 (07/21 12:39)
8F:推 fake01:我新增child.as 可以点击按钮删除自己 07/21 13:12
9F:→ fake01:但在main.fla执行会出错 07/21 13:13
10F:→ fake01:TypeError: Error #2007: 参数 child 不能是 Null。 07/21 13:14
11F:推 fake01:trace(childmc); 等於 NULL 07/21 13:18
12F:推 fake01:已经了解 谢谢高手J 加入this.addchild(...); 07/21 13:27
13F:→ fake01:不对,後来发现还是错 会出现 Child 不能是null 07/21 13:58