2013-01-21 155 views
0

我的Flash遊戲存在多幀時間軸(我知道我應該避開時間軸) 遊戲的重點是點擊冒險。當你進入和離開房間時,你能夠拾取的物體會相應產生並銷燬。現在我的問題是,當輸入第14幀(從第12幀開始)時,它會創建一張紙,如果您有其他物品,您可以拾取它。現在我的問題是,當你不能或不拿起紙張並回到第12幀時(只有出口到第12幀),你不能點擊任何其他物體,而是基本卡在第12幀上。當離開和進入其他房間能正常工作,但由於某種原因,14移除AS3兒童

我的代碼刪除對象的工作原理如下

在我Main.as的DocumentClass我有一個它不用於紙張上的框架功能,一旦遊戲開始,其確實稱爲下面

if (lastframe == 14) 
{ 
    trace (prop.numChildren); 
    while (prop.numChildren) 
    { 
     prop.removeChildAt(0); 
    } 
} 

從幀移動時lastframe變量建立此功能幀本身(在它自己的相應的幀中的每個出射函數)

function exitKantine(event:MouseEvent):void 
{ 
    Main.lastframe = 14; 
    gotoAndStop(12); 
} 

上發現,以除去丙實際上刪除它的功能,但接着使所有其他可點擊的對象是不可用的。

感謝提前看着我的問題,並感謝您的建議

回答

0

我想說的不是刪除的孩子,一旦在開始添加,添加所有的聽衆開始,切換的知名度,而不是試圖addChild和removeChild每次你想隱藏它。使用一個數組,以便同時發生一些事情。

是這樣的:

私有函數的init():無效

{ 

assignVars(); 
addListeners(); 

    stage.addChild // make sure this is in document class or you are passing stage to the class using it 


} 


for (var i = 0; i < _thingsAry.length; i++) 
{ 

if (_thingsAry[i] == 14) 
{ 
    _thingsAry[i].visible = false; 
    trace("the visibility of _thingsAry[" + i + "] is " + _thingsAry[i].visible 
} 
}