Frage

Ich habe eine Komponente geschrieben, die einen Dateinamen und eine Miniaturansicht anzeigt und über eine Schaltfläche zum Laden/Wiedergeben der Datei verfügt.Die Komponente ist datengebunden an einen Repeater.Wie kann ich dafür sorgen, dass das Schaltflächenereignis an die Hauptanwendung gesendet wird und ihr mitteilt, welche Datei abgespielt werden soll?

War es hilfreich?

Lösung

Auf Ihrer benutzerdefinierten Komponente können Sie das Schaltflächenklickereignis abhören und dann ein benutzerdefiniertes Ereignis generieren, das Informationen über die Datei enthält, die Sie abspielen möchten.Anschließend können Sie die Eigenschaft „Bubbles“ für das Ereignis auf „true“ setzen und das benutzerdefinierte Ereignis von Ihrer benutzerdefinierten Komponente auslösen.Die Eigenschaft „Blasen“ sorgt dafür, dass Ihr Ereignis in der Anzeigeliste nach oben schwebt und Ihre Hauptanwendung erreicht.Jetzt können Sie in Ihrer Hauptanwendung dieses Ereignis anhören und die richtige Datei abspielen.Hoffe das hilft.

Andere Tipps

Habe es (endlich) herausgefunden

Benutzerdefinierte Komponente

<?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"/>

Der Repeater

<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>

Handhabungsfunktion

private function PlayFile(fileName:String):void{
    Alert.show(fileName.toString());
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top