2012-03-06 22 views
0

RPGタイプのフラッシュで作業しているので、テキストボックスをかなりの場所から操作できるようにする必要があります。私を困らせているのは目録です。インベントリクリップ(インスタンス名「インベントリ」)内から「statusWindow」のインスタンスを持つテキストボックスにアクセスできるようにする必要があります。ムービークリップ内のアイテムにマウスを重ねると、ステージ上のステータスウィンドウが変更されます。AS3ムービークリップ内からメインタイムラインでムービークリップにアクセスするにはどうすればよいですか?

このインスタンスでは、メインタイムラインからinventory.invHealthにマウスを移動して表示を取得します。 itemNameおよびitemPropsは、アイテムに関する情報を含む文字列です。

私は次のように試しましたが、「おそらく定義されていません」というエラーが表示されました。あなたはそれを投稿するとき、ほとんどの人が通常anyway-私はそれを非常に感謝行う-thoughまた、あなたのコードを説明することができるので、もし

invHealth.addEventListener(MouseEvent.MOUSE_OVER, itemStats); 

    function itemStats(e:Event):void 
    { 
     root.statusWindow.text = itemName+"\n"+itemProps; 
    } 

私は、まだAS3で非常に熟達していませんよ。前もって感謝します!

答えて

0

情報オブジェクトをクラスオブジェクトに格納することをお勧めします。そのオブジェクトは、statusWindowとインベントリクリップの両方からアクセス可能でなければなりません。こうすることで、テキストボックスを「読み込む」必要がなくなり、同じデータに対して異なる見方ができます。例えば:あなたはもちろんのような、より構造化された情報データ、作成することができ

public class GlobalVars 
{ 
    public static var health:Number; 
} 

public class Item 
{ 
     public function Item(setname:String) 
     { 
     name=setname; 
     health = 100; 
     quantity = 0; 
     } 

     private var name:String; 
     private var health:Number; 
     private var quantity:Number; 
} 

var inventory:Array = new Array(); 
inventory.push(new Item("hammer")); 
inventory.push(new Item("gun")); 
inventory.push(new Item("sponge")); 
+0

私はこのために、外部の.asファイルを作成する必要がありますか? –

+0

あなたはそうする必要はありませんが、それが良いことです。各クラスを別々の.asファイルに入れます。初期化メソッドでクラスのオブジェクトを作成します。オブジェクトをさまざまなクリップで到達可能にします。 – vulkanino

+0

いいですね、それを試してみましょう。 –

関連する問題