作者STARGAZERs (星之影)
看板Flash
標題Re: [問題] removechild
時間Thu Nov 18 09:23:32 2010
※ 引述《iii125 (小 i)》之銘言:
: 我現在是在做一個記憶力配對的遊戲
: 我遊戲製作的步驟是
: 我用for迴圈每次亂數addchild一個影片片段裡的物件
: 然後過幾秒後再將這些物件removeChild
: 不過我現在遇到的問題是
: 每次只能remove掉我亂數選出來的最後一個物件
: 前面addchild的物件消不掉
: 我之前有用過removeChildAt方式成功過
: 只不過當我放到網路上試的時候
: 會因為載入速度不一而移除到其它的物件
: 所以才想用removeChild的方式
: 而我想問是不是因為addChild順序會影響物件的變數名稱
: 還是有其他原因?
: 請板上大大指點
: 原始檔=>http://tinyurl.com/33np5yy
看完原始檔很明顯你是搞錯了 as3 的命名原則....
你是試看 trace(f.name)
你會發現 name 都是 instanceX (X是一個數字)
這表示元件的名稱叫做 instanceX
不然 stage 上面就會有一堆叫做 f 的元件了
小修改一下應該就可以了
用 第一格當作說明
你在 frame1 L=28 的地方有一個
f.name='f'+String(j);
這樣就會命名成為 f0, f1 f2 .....
下面 removeChild 改寫成為
for (var j2:int = j2<listlength;j++) {
removeChild(stage.getChildByName("f"+String(j2)));
}
這樣三個你亂數放上來的東西應該就可以順利拿掉了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.118.160
推 iii125:感謝S大的回覆!!! 不過我是把stage拿掉才成功 11/18 13:29
→ STARGAZERs:抱歉 我寫回文的時候沒測試... 11/18 15:10
→ STARGAZERs:不過沒有需要 stage 應該是因為你前面也都沒放 11/18 15:10
推 iii125:原來如此! 感謝S大詳細的解說! 11/19 01:54