2010-11-09 125 views
1

如何可靠地迭代每個孩子的MovieClip?解析兒童的影片剪輯?

我正在製作一款遊戲和一個很好的佈局方式,我的關卡位於一個MovieClip內,每個幀都是一個新的關卡。問題是,當我移動到第2幀或第3幀並嘗試迭代MovieClip的子項時,我得到的數字與實際在該幀中的數量(少)不同。

我認爲這是因爲來自前一幀的實例正在被轉移到新的幀。

一個簡單的解決方案是爲每個級別創建一個新的MovieClip,而不是每個MovieClip中的新幀,但這不是最具可擴展性的解決方案(例如,我想要刪除級別或在其他級別之間添加級別,等等)。

任何想法?

+0

給出了使用精靈的任何想法?它聽起來不像是在使用影片剪輯的時間軸,而且精靈的開銷大大減少 – 2010-11-09 18:50:59

+0

但那不是那裏的問題......仍然 - 好東西就是這樣。 – 2010-11-09 18:55:49

+0

@ Aurel300,這就是爲什麼它在評論中,而不是答案。 ;) – 2010-11-09 20:26:27

回答

0

您可以遍歷當前幀的所有子項,然後刪除它們,然後轉到下一幀。

1

在家試過了,工作原理:

var mc : $TestMovie2 = new $TestMovie2(); 
addChild(mc); 
mc.addEventListener(Event.ADDED, function(e : Event) : void { 
    trace("add to mc :",e.target,e.target["name"]); 
}); 
mc.addEventListener(Event.REMOVED, function(e : Event) : void { 
    trace("remove from mc :",e.target,e.target["name"]); 
});   
mc.stop(); 
mc.gotoAndStop(2); 
trace("frame 2 numChildren: ",mc.numChildren); 
var i : int = mc.numChildren; 
while (i--) { 
    trace(mc.getChildAt(i).name); 
} 
mc.gotoAndStop(3); 
trace("frame 3 numChildren: ",mc.numChildren); 
i = mc.numChildren; 
while (i--) { 
    trace(mc.getChildAt(i).name); 
} 

// output : 
// add to mc : [object $TestMovie3] $child_1_frame2 
// add to mc : [object $TestMovie3] $child_3_frame2 
// add to mc : [object $TestMovie3] $child_2_frame2 
// frame 2 numChildren: 3 
// $child_2_frame2 
// $child_3_frame2 
// $child_1_frame2 
// remove from mc : [object $TestMovie3] $child_1_frame2 
// remove from mc : [object $TestMovie3] $child_3_frame2 
// remove from mc : [object $TestMovie3] $child_2_frame2 
// add to mc : [object $TestMovie3] $child_1_frame3 
// add to mc : [object $TestMovie3] $child_2_frame3 
// add to mc : [object $TestMovie3] $child_3_frame3 
// add to mc : [object $TestMovie3] $child_4_frame3 
// add to mc : [object $TestMovie3] $child_5_frame3 
// frame 3 numChildren: 5 
// $child_5_frame3 
// $child_4_frame3 
// $child_3_frame3 
// $child_2_frame3 
// $child_1_frame3 

$ TestMovie2是一個MovieClip在包含閃光IDE庫: 幀1:NOTHING 框架2:3 $ TestMovie3的MovieClip 框架3: 5 $ TestMovie3 MovieClip

0

爲什麼不使用Document類以及遊戲的特定類?只需使用fla爲您的圖形資產。

這樣,您將不會依賴幀,並且您可以完全控制每個級別的MovieClips實例。