ActionScript3.0でXML:その2.コンボボックスでエレメントの抽出

>>Flaファイルをダウンロード

今回も、このサンプルを使います。

前回のエントリーでコンボボックスに、それぞれ「nameエレメント」と、「part属性」をデータプロバイダとして設定しました。

コンボボックスの、どの値(セル)が選択されているかは「コンボボックスインスタンス.selectedItem」で参照できるので、

nameCmb.addEventListener(Event.CHANGE , nameSelectHandler);
/*----------------------------------------------
■nameSelectHandler
■概要
nameCmbから、エレメントを選択すると、選択されたエレメントをselectedTxtAreaに表示し
当該エレメントをsetected_xmlに代入する
----------------------------------------------*/
function nameSelectHandler(event:Event):void{
    var selectedNodeName:String = event.target.selectedItem.data.toString();
    setected_xml = new XMLList(test_xml.member.(name == selectedNodeName) );
    selectedTxtArea.text = setected_xml;
}

 コンボボックスの、選ばれているセルが変更された際に発行されるイベント「CHANGEイベント」で、新しく選ばれたセルが保持している「data」プロパティを取得した値により、「test_xml」から抽出しています。

「part属性」で抽出する場合は

setected_xml = new XMLList(test_xml.member.(@part == selectedNodepart) );

こうなります。

「ActionScript3.0でXML XMLの基本的な使い方」の応用ですね。

因みに、ひとつのパートに2人(ツインギター)や、一人の人間が複数パート(ギター&ボーカル)なんてケースも存在するため、抽出したデータは、XMLListクラスを利用します。
仮に、XMLクラスを使用した場合、抽出されたエレメントが単一ならば問題ないのですが、複数のエレメントが抽出された場合、ランタイムエラーが発生します。

コメントする

トラックバック(0)

このブログ記事を参照しているブログ一覧: ActionScript3.0でXML:その2.コンボボックスでエレメントの抽出

このブログ記事に対するトラックバックURL: http://studio-ensyu.sakura.ne.jp/mt/mt-tb.cgi/24