2007-06-15

載入 SWF 後的物件關係 (AS3)

loadee.fla :
a_mc.alpha = 0.5;
trace('a_mc.parent:',
a_mc.parent, "::",
a_mc.parent.name);
trace('a_mc.parent.parent:',
a_mc.parent.parent, "::",
a_mc.parent.parent.name);
trace('a_mc.parent.parent.parent:',
a_mc.parent.parent.parent, "::",
a_mc.parent.parent.parent.name);
trace('a_mc.parent==root :', a_mc.parent==root);
trace('------------');

loader.fla :
var my_this = this;
var ldr:Loader = new Loader();
ldr.load(new URLRequest("loadee.swf"));
addChild(ldr);

b_mc.addEventListener(MouseEvent.CLICK, function():void{
trace(ldr.content.name);
ldr.content['a_mc'].rotation = 30;
});

loadee.fla 裡內有一個 MovieClip「a_mc」
loader.fla 裡內有一個 MovieClip「b_mc」
執行 loader.swf 後, 再按 b_mc 後的結果:
a_mc.parent: [object MainTimeline] :: instance4
a_mc.parent.parent: [object Loader] :: instance3
a_mc.parent.parent.parent: [object MainTimeline] :: root1
a_mc.parent==root : true
------------
instance4

由結果可知 :
1. loader root -> ldr -> loadee root -> a_mc
(上式 -> 表示包含子物件)
2. 每個 swf 裡的 root 參照是固定的, 不因被載入而改變

1 則留言:

Zach 提到...

您好!我後來光碟找到了。想請教您一個問題,我若要連續載入10個外部的swf,載入後又希望可以個別的控制他移動,我如何設一個for迴圈像是
for(var i=1;i<11;i++){
var ldr[i]:Loader = new Loader();}
這樣來新增10個Loader?

FB 留言