2011-12-29 8 views
0

可変値を使用してオブジェクトを参照することは可能ですか?
たとえば、アイテムをクリックしたときにイメージを非表示にしてそのイメージを在庫リストに追加する機能があります。
すべての画像情報はオブジェクト(名前、imgSource、visible、x、y)に格納されます。私はknife.visible、knife.xPos、電気ショック療法を変更することができるように「の項目は」ナイフ放置したい
可変オブジェクト参照による可変オブジェクト

<fx:Script> 
    <![CDATA[ 
     public var item:Object = new Object(); 

     // name, imgSource, xPos, yPos, visible 
     [Bindable] 
     public var knife:ItemInfo = new ItemInfo('knife','knife.png',50,50,true); 

     public function addItem(evnt:MouseEvent):void 
     { 
      // I want "item" to be equal to the object "knife" 
      item = evnt.currentTarget.name; 
      item.visible = false; 
      inventory.addItem(item.name); 
     } 
    ]]> 
</fx:Script> 

<s:Image source="{knife.source}" name="knife" 
     x="{knife.xPos}" y="{knife.yPos}" 
     visible="{knife.visible}" 
     click="addItem(event);" /> 



私はこのような何かを行うことができます考えていました。
これが可能ですか、これを行うにはより良い方法がありますか?

ありがとうございます!

答えて

1

なぜitemObjectである必要がありますか?なぜそれはタイプItemInfoではありませんか?

itemは、クリックしたknifeイメージを参照したい場合は、item = evnt.currentTargetも動作するはずです。

更新

TOOLINFO?またはItemInfo?

とにかくevnt.currentTargetはオブジェクトタイプです。キャストして、ItemInfoと入力してみてください。

evnt.currentTarget as ItemInfo

+0

、私はこのエラーを取得: 1118:TOOLINFO:おそらく無関係なタイプのコンポーネントに静的な型のオブジェクトと値の暗黙の強制。 – jao

+0

私の更新を見て、それが動作するかどうか確認してください。 –

+0

どちらもうまくいきませんでした エラー:プロパティ "visible"にアクセスできませんが、私はそれを行う方法が分かりませんでした。 助けてくれてありがとう – jao

0

クリック上のオブジェクトの値を変更する最も簡単な方法は、ただのaddItem()関数にオブジェクト自身を渡すことです。これの問題は、いつどの変数が関数に入るかを事前に選択しなければならないことです。しかし、この目的のためにはうまくいきます。私は、「アイテム」タイプItemInfoを作る場合

<fx:Script> 
<![CDATA[ 
    public var item:Object = new Object(); 

    // name, imgSource, xPos, yPos, visible 
    [Bindable] 
    public var knife:ItemInfo = new ItemInfo('knife','knife.png',50,50,true); 

    public function addItem(item:ItemInfo):void 
    { 
     item.visible = false; 
     inventory.addItem(item.name); 
    } 
    ]]> 
</fx:Script> 

<s:Image source="{knife.source}" name="knife" 
    x="{knife.xPos}" y="{knife.yPos}" 
    visible="{knife.visible}" 
    click="addItem(knife);" /> 
関連する問題