2017-05-18 17 views
1

ムービークリップの中に同じムービークリップがたくさんあります。私はそれらの名前を付けるが、それぞれの手でそれを行うことは迷惑な作業になるので、私はactionscriptを通してそれをしたい。Movieclipでムービークリップの名前をClass in Flashから呼び出すにはどうすればよいですか?

私は(無関係)item_Potionという名前のMovieClipクラスを持っている、そしてそれは、我々は、我々は簡単な言葉で名前name = String("item" + itemNumber);を行い、itemNumberという名前のグローバル変数に1を追加し、コンストラクタ関数を実行するとき、我々はそれを作る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] 

だから、これが今の私の質問です、どのように私は名前を付けることができ

は今ここに問題がありますエラーのないクラスからのムービークリップですか?オブジェクトを参照します「変数トークン」として「タイムライン上に配置されたオブジェクトnameプロパティ」の

答えて

3

だと思うが、これエラーメッセージ状態として不変である必要があります!

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

A:合理的な回避策は、専用のフィールドには、オブジェクトの特定の名前が保持することである(おそらくMovieClipクラスから派生した)カスタムクラスとオブジェクトを割り当てることであろう


迅速この問題を回避するには、非常に MovieClipクラスの dynamic classでオブジェクトを提供し、ダイナミックプロパティに「 名前」を保存するために、次のようになります。

myObj['objName'] = 'item' + itemNumber; 
関連する問題