2008-08-06 22 views
5

ファイル名とサムネイルを表示し、ファイルをロード/再生するためのボタンがあるコンポーネントを作成しました。コンポーネントは、リピータにバインドされたデータです。ボタンイベントがメインアプリケーションに起動し、再生するファイルを指示するようにするにはどうすればよいですか?Adob​​e Flexのコンポーネントイベント

答えて

1

カスタムコンポーネントでは、ボタンのクリックイベントを聴いて、再生するファイルに関する情報を保持するカスタムイベントを生成できます。次に、イベントでbubblesプロパティをtrueに設定し、カスタムコンポーネントからカスタムイベントを送出できます。 bubblesプロパティは、イベントを表示リストの上に浮かせて、メインアプリケーションに到達させます。今すぐあなたのメインアプリケーションでは、そのイベントを聞いて、正しいファイルを再生することができます。お役に立てれば。

1

カスタムコンポーネント

<?xml version="1.0" encoding="utf-8"?> 
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" x="0" y="0" width="215" height="102" styleName="leftListItemPanel" backgroundColor="#ECECEC" horizontalScrollPolicy="off" verticalScrollPolicy="off"> 
<mx:Script> 
    <![CDATA[ 
     [Bindable] public var Title:String = ""; 
     [Bindable] public var Description:String = ""; 
     [Bindable] public var Icon:String = ""; 
     [Bindable] public var FileID:String = ""; 
     private function viewClickHandler():void{ 
      dispatchEvent(new Event("viewClick", true));// bubble to parent 
     } 
    ]]> 
</mx:Script> 
<mx:Metadata> 
    [Event(name="viewClick", type="flash.events.Event")] 
</mx:Metadata> 
<mx:Label x="11" y="9" text="{String(Title)}" styleName="listItemLabel"/> 
<mx:TextArea x="11" y="25" height="36" width="170" backgroundAlpha="0.0" alpha="0.0" styleName="listItemDesc" wordWrap="true" editable="false" text="{String(Description)}"/> 
<mx:Button x="20" y="65" label="View" click="viewClickHandler();" styleName="listItemButton" height="22" width="60"/> 
<mx:LinkButton x="106" y="68" label="Details..." styleName="listItemLink" height="18"/> 
<mx:HRule x="0" y="101" width="215"/> 

リピーター

private function PlayFile(fileName:String):void{ 
    Alert.show(fileName.toString()); 
} 
機能の取り扱い
<mx:Canvas id="pnlSpotlight" label="SPOTLIGHT" height="100%" width="100%" horizontalScrollPolicy="off"> 
    <mx:VBox width="100%" height="80%" paddingTop="2" paddingBottom="1" verticalGap="1"> 
     <mx:Repeater id="rptrSpotlight" dataProvider="{aSpotlight}">    
      <sm:SmallCourseListItem 
       viewClick="PlayFile(event.currentTarget.getRepeaterItem().fileName);" 
       Description="{rptrSpotlight.currentItem.fileDescription}" 
       FileID = "{rptrRecentlyViewed.currentItem.fileName}"  
       Title="{rptrSpotlight.currentItem.fileTitle}" /> 
     </mx:Repeater> 
    </mx:VBox> 
</mx:Canvas> 

(最終的に)それを考え出しました