2015-09-01 105 views
-4

我在這裏添加了一個動畫片段和一個數字。爲了得到效果,就像一個有數字的星星。Flash AS3不允許刪除TextField或MovieClip

消息是「starCount不是呼叫者的孩子」。我不知道這是什麼意思。它被添加到舞臺上,所以它應該在那裏被帶走。

var starClip = new ComboStarYellow(); 

starClip.x = 600; 
starClip.y = 190; 

if(ScoreKeep.comboTracker[starColor] == 0) 
{ 
    starSprite.addChild(starClip); 
} 
else 
{ 

    if(starClip!= null && starClip.parent != null) 
    { 
     removeChild(starClip); 
    } 

    if(starCount!= null && starCount.parent != null) 
    { 
     removeChild(starCount); 
    } 


    var starCount:TextField = new TextField(); 
    var starFormat:TextFormat = new TextFormat(); 
    starFormat.font="SF Atarian System Extended"; 
    starFormat.color = 0xFFFFFF; 
    starFormat.size = 20; 


    starCount.text = ScoreKeep.comboTracker[starColor].toString(); 
    starCount.x = 600; 
    starCount.y = 200; 
    starCount.setTextFormat(starFormat); 
    starSprite.addChild(starClip); 
    starSprite.addChild(starCount); 
} 
+1

「Flash在邏輯和基本直覺方面總是令我驚歎」你的意思是你讓自己驚訝因爲閃存只是做了什麼,編碼器要求它這樣做,如果出現錯誤,請責備真正的責任人:你。如果你設法將其他任何事情都用在別的方面,那麼你顯然對你很不安,對你有好處。 – BotMaster

+0

請不要使用褻瀆和憤怒的文字等。請看這裏http://stackoverflow.com/help/be-nice – James

回答

4

可悲的是你的結尾不是ActionScript的錯誤。此行不正確:

removeChild(starClip); 

您將starClip添加到starSprite而不是舞臺因此出現錯誤。您需要從starSprite中移除starClip。

starSprite.removeChild(starClip); 

事實上,您的代碼中可能會遇到一些問題需要處理。