2004/6/13

以迴圈刪除不規則命名MC

之前有看到mmug討論,在開發flash game的時候,場景中經常會產生許多大大小小mc,因此最好的方式是將所有的mc都先包在一個大的mc中,例如
_root.game.hero//主角
_root.game.background//背景
_root.game.enemy1~enemyN//敵人群
當遊戲結束時只要將_root.game刪除即可。


以前我也是這樣做的,但是今天就是不小心沒把所有東西放在一起,但實在又懶得一行行去remove…更不可能重新安排所有mc…

因此突然想到一招爛招:用for in迴圈,也行滴

例如:

for (N in _root) {
if (typeof (_root[N]) == "movieclip") {
trace(N+":讓我死吧~");
}
}

這樣就可以快速找到_root下所有mc,尤其方便在不規則命名下使用^^"

同樣的方法也可以用來找mc以外的物件。像object之類的

如果說其中有少數幾個是要保留的,也可以if else加入判斷





***意外發現!!

在用這招時,發現多一個不是我產生的mc叫:__OnEnterFrameBeacon(底線兩次)

這似乎又是undocument的玩意兒,用google找只找到一篇

http://www.darronschall.com/weblog/archives/000082.cfm

via:darron schall

好像是可以在無mc的狀態下,觸發onEnterFrame事件,真有趣…有空再來看了T_T

沒有留言: