1

XMLListContainer dataProvider で Tree コントロールを使用しています。次のコードで itemOpen イベントを使用して、ツリー フォルダが開かれたときに (小さな三角形を使用して) 別のデータ プロバイダを更新します。データ プロバイダには<slide />、その特定のすべての要素が含まれています。ツリー フォルダ...

private function itemOpenEvent(event:TreeEvent):void {          
 slideDP = new XMLListCollection(event.item.elements("slide"));  
 slideDP.refresh();                     
}

2 番目のフォルダーを開くと、thumbDP は正常に更新されますが、最初のフォルダー (または別の閉じたフォルダー) をクリックすると、同じ動作が発生します (現在、最初のフォルダーを閉じて再度開く必要があります)。

だから私はitemClickイベントを使用します - しかし、これはListEventを起動し、XMLListContainerから子要素を簡単に取得する方法を理解できません...以下のコードは範囲外の例外をスローします

private function itemClickEvent(event:ListEvent):void {         
 treeFeed.getItemAt(event.rowIndex);                        
}

誰でも助けることができますか?ありがとう :)

4

1 に答える 1

2

変更イベントをリッスンするようにイベント リスナーを変更し、ツリーの selectedItem プロパティを使用します。

private function changeHandler(event:ListEvent):void
{                  
    slideDP = new XMLListCollection(tree.selectedItem.elements("slide"));

    slideDP.refresh();                           
}

selectedItem を XML または XMLList としてキャストする必要がある場合があります。

于 2009-02-18T14:20:34.323 に答える