События компонента Adobe Flex

голоса
6

Я написал компонент, который отображает имя файла, эскиз и имеет кнопку для загрузки / воспроизведения файла. Компонент привязка данных к повторителю. Как я могу сделать это так, чтобы событие кнопки срабатывает в основном приложении и говорит, что, какой файл играть?

Задан 06/08/2008 в 19:57
источник пользователем
На других языках...                            


2 ответов

голоса
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"/>

Повторитель

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

Работа с функцией

private function PlayFile(fileName:String):void{
    Alert.show(fileName.toString());
}
Ответил 06/08/2008 в 20:23
источник пользователем

голоса
1

На пользовательском компоненте можно прослушивать событие нажатия кнопки, а затем создать пользовательское событие, которое содержит информацию о файле, который вы хотите воспроизвести. Вы можете установить пузыри свойство верно о событии и отправки пользовательского события из пользовательского компонента. Пузыри недвижимость сделает ваше событие всплывает список отображения и достичь основного приложения. Теперь на вашем главном приложении вы можете слушать это событие и воспроизвести нужный файл. Надеюсь это поможет.

Ответил 06/08/2008 в 20:25
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more