Question

J'ai écrit un composant qui affiche un nom de fichier, une vignette et dispose d'un bouton pour charger/lire le fichier.Le composant est lié aux données d'un répéteur.Comment puis-je faire en sorte que l'événement de bouton se déclenche sur l'application principale et lui indique quel fichier lire ?

Était-ce utile?

La solution

Sur votre composant personnalisé, vous pouvez écouter l'événement de clic sur le bouton, puis générer un événement personnalisé contenant des informations sur le fichier que vous souhaitez lire.Vous pouvez ensuite définir la propriété bubbles sur true sur l'événement et distribuer l'événement personnalisé à partir de votre composant personnalisé.La propriété bubbles fera flotter votre événement dans la liste d’affichage et atteindra votre application principale.Désormais, sur votre application principale, vous pouvez écouter cet événement et lire le fichier correct.J'espère que cela t'aides.

Autres conseils

J'ai compris (enfin)

Composant personnalisé

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

Le répéteur

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

Fonction de manipulation

private function PlayFile(fileName:String):void{
    Alert.show(fileName.toString());
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top