Прослушать пользовательское событие - PullRequest
0 голосов
/ 08 апреля 2011

У меня есть кнопка, когда я нажимаю на нее, всплывающее окно и просит подтвердить. Когда это подтверждают, я отправляю и пользовательское событие. Но в приложении я не могу слушать событие ?? Кто-нибудь может мне помочь?

Также это мобильное приложение.

Первый вид </p> <pre><code><fx:Script> <![CDATA[ import events.ConfirmDeleteEvent; import mx.managers.PopUpManager; private var _confirmDeletePopup:ConfirmDeletePopup; protected function confirm(event:MouseEvent):void { this.addEventListener(ConfirmDeleteEvent.YES, deleteConfirm); this.addEventListener(ConfirmDeleteEvent.NO, deleteNotConfirm); _confirmDeletePopup = new ConfirmDeletePopup(); PopUpManager.addPopUp(_confirmDeletePopup, this, true); PopUpManager.centerPopUp(_confirmDeletePopup); } protected function deleteConfirm():void { trace("delete confirm"); lbl.text = "Delete"; PopUpManager.removePopUp(_confirmDeletePopup); } protected function deleteNotConfirm():void { trace("delete not confirm"); lbl.text = "Don't delete"; PopUpManager.removePopUp(_confirmDeletePopup); } ]]> </fx:Script> <s:Button width="100%" label="Delete" click="confirm(event)"/> <s:Label id="lbl" width="100%" fontSize="36" text="What to do?" textAlign="center"/>

Использование компонента в PopopUp </p> <pre><code><fx:Script> <![CDATA[ import events.ConfirmDeleteEvent; import mx.managers.PopUpManager; protected function click(type:String):void { var confirmDeleteEvent:ConfirmDeleteEvent = new ConfirmDeleteEvent(type); var result:Boolean = dispatchEvent(confirmDeleteEvent); trace("Event dispatch : " + result); } ]]> </fx:Script> <s:VGroup paddingBottom="8" paddingLeft="8" paddingRight="8" paddingTop="8" width="100%"> <s:Label width="100%" maxDisplayedLines="5" text="Delete?" textAlign="center"/> <s:HGroup width="100%"> <s:Button id="yesButton" width="50%" label="Yes" click="click(ConfirmDeleteEvent.YES)"/> <s:Button id="noButton" width="50%" label="No" click="click(ConfirmDeleteEvent.NO)"/> </s:HGroup> </s:VGroup>

Мое событие package events { import flash.events.Event;</p> <pre><code>public class ConfirmDeleteEvent extends Event { public static var YES:String = "yes"; public static var NO:String = "no"; public function ConfirmDeleteEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false) { super(type, bubbles, cancelable); } override public function clone():Event { return new ConfirmDeleteEvent(type, bubbles, cancelable); } }

}

Спасибо

1 Ответ

1 голос
/ 08 апреля 2011

Добавьте прослушиватель событий в ваш компонент _confirmDeletePopup, а не в вызывающий компонент.Как это:

protected function confirm(event:MouseEvent):void
        {
                _confirmDeletePopup = new ConfirmDeletePopup();

                _confirmDeletePopup.addEventListener(ConfirmDeleteEvent.YES, deleteConfirm);
                _confirmDeletePopup.addEventListener(ConfirmDeleteEvent.NO, deleteNotConfirm);

                PopUpManager.addPopUp(_confirmDeletePopup, this, true);
                PopUpManager.centerPopUp(_confirmDeletePopup);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...