2009-06-02 13 views
0

それはそうのような、でも動的なオブジェクトに対して、オブジェクトのインスタンスを宣言することが可能です:MXMLでのディクショナリ宣言は可能でしょうか? MXMLで

<mx:Object> 
    <mx:foo>bar</mx:foo> 
    <mx:bar>foo</mx:bar> 
</mx:Object> 

それはいくつかのMXMLのラッパークラスを使用せずにDictionaryクラスで同じことを行うことは可能ですか?

答えて

6

私はこの質問をよく理解していませんが、MXMLで辞書を宣言できるかどうかを尋ねている場合は、そうすることができます。ここで辞書を証明するいくつかのコードを使用すると、動的辞書に項目を追加する方法を示す形と一緒に、MXMLで宣言されています:

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" xmlns:utils="flash.utils.*" creationComplete="onCreationComplete()"> 

    <mx:Script> 
     <![CDATA[ 

      private function onCreationComplete():void 
      { 
       showContents(); 
      } 

      private function onBtnClick():void 
      { 
       addProperty(); 
       showContents(); 
      } 

      private function showContents():void 
      { 
       txt.text = ""; 

       for (var k in d) 
        txt.text += k + ": " + d[k] + "\n" 
      } 

      private function addProperty():void 
      { 
       d[pname.text] = pvalue.text; 

       pname.text = ""; 
       pvalue.text = ""; 

       pname.setFocus(); 
      } 

     ]]> 
    </mx:Script> 

    <mx:VBox> 
     <mx:Label text="Dictionary Contents" /> 
     <mx:TextArea id="txt" width="350" height="200" /> 
     <mx:HBox> 
      <mx:VBox> 
       <mx:Label text="New Property Name" /> 
       <mx:TextInput id="pname" text="pets" /> 
      </mx:VBox> 
      <mx:VBox> 
       <mx:Label text="New Property Value" /> 
       <mx:TextInput id="pvalue" text="dog, cat, fish" /> 
      </mx:VBox> 
     </mx:HBox> 
     <mx:Button id="btn" label="Add" click="onBtnClick()" /> 
    </mx:VBox> 

    <utils:Dictionary id="d"> 
     <utils:fname>Chris</utils:fname> 
     <utils:lname>Nunciato</utils:lname> 
    </utils:Dictionary> 

</mx:Application> 

を役に立てば幸い!私が完全にポイントを逃した場合は、ポストバックし、私は助けることができるかどうかがわかります。

+0

ありがとう、これは、私たちが単にDictionaryがmx名前空間にないことを認識していなかったトータルなミスでした。 –

0

いいえ、私はディクショナリがMXMLにバインドされていないと思います。

本当に達成したいと思うような辞書が本当に必要ですか?

1

ことが可能であり、あなたが正しい名前空間をインポートする場合

<mx:Application ... xmlns:utils="flash.utils.*"> 
     <utils:Dictionary> 
      <utils:foo>bar</utils:foo> 
      ... 
     </utils:Dictionary> 
     ... 

しかし、私はこれを行うには十分な理由を見ません。あなたが通常使用する普通のオブジェクト(または< mx:Model>)に対する辞書の利点は、文字列以外のオブジェクトをキーとして使用できることです。しかし、String以外のキーをMXMLで記述することはできません。

他の言葉で言えば:はい、作成できますが、ポイントはありません。

+0

一つの状況を除いて私は同意します。 MXMLを使用してモックデータを作成することはよくあります。なぜなら、フォーマットは効率的な方法でこれを行うために非常に適しているからです。モックバリューオブジェクトや他のタイプのモックをMXMLでASと比べて読み書きするほうがずっと簡単です。しかし、ええ、私はそうでなければあなたの感情に同意します。 –

+0

+1は意味がありません。 Dictは非文字列キーに最適です。それ以外の場合は、Objectを使用します。 –

関連する問題