2017-05-18 36 views
1

我在Movieclip中放置了很多相同的Movieclip。我想給他們起個名字,但是爲他們每個人手工做這件事都是一件煩人的事,所以我想通過動作來做。如何從Flash中的類中爲Movieclip命名Movieclip?

我命名item_Potion(無關)一MovieClip類,當它運行的構造函數,我們增加1到名爲itemNumber一個全局變量,然後我們做名字簡單來說name = String("item" + itemNumber);,我們讓它item + itemNumber

爲了清楚起見,該課程將綁定到此Movieclip item_Potion。

現在這裏是問題:

當我嘗試做name = String("item" + itemNumber);我收到以下錯誤更改名稱:

Error: Error #2078: The name property of a Timeline-placed object cannot be modified. 
    at flash.display::DisplayObject/set name() 
    at item_Potion()[E:\g\item_Potion.as:33] 
    at flash.display::Sprite/constructChildren() 
    at flash.display::Sprite() 
    at flash.display::MovieClip() 
    at mc_Map()[E:\g\mc_Map.as:15] 
    at Game()[E:\g\Game.as:82] 

所以現在這是我的問題,我哪有名從類的Movieclips沒有錯誤?

回答

3

想作爲一個「可變令牌」將引用該對象的「放置在時間軸上的對象的name屬性」的,因此需要爲不可變的作爲錯誤消息狀態!


一個理性的解決方法是使用自定義類(可能是從MovieClip類派生),其中一個專用的字段是存在保持特定名稱的對象的分配的對象:

public class MySpecialMC extends MovieClip { 
    public var objName:String; 
} 

快速解決辦法是爲用戶提供非常MovieClip類的dynamic class對象和動態屬性存儲「」:

myObj['objName'] = 'item' + itemNumber;