Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Event не срабатывает:( (http://www.flasher.ru/forum/showthread.php?t=109785)

BeDLiNt 20.03.2008 19:03

Event не срабатывает:(
 
Пишу кастомный евент, вот он:
Код:

package {
        import flash.events.Event;
       
        public class EditEvent extends Event {
               
                public var content:String;
               
                public function EditEvent(type:String, content:String) {
                        super(type);
                        this.content = content;
                }
               
            public override function clone():Event {
        return new EditEvent(type, content);
            }       
       
        }
       
}

Потом посылаю событие таким образом (но он в компоненте модального диалога):
Код:

var currentEvent:Event = new EditEvent("EditEvent", "PREVED");
dispatchEvent(currentEvent);

Объявляю обработчик события в основной программе:
Код:

application.addEventListener("EditEvent", prevedMedved);
Но евент не ловится:(..

P/S/ Если делать событие в основной программе, то всё работает как часы.

BeDLiNt 20.03.2008 20:35

Проблемма решена:
Код:

parentApplication.dispatchEvent(currentEvent);

Molecula 14.05.2008 19:22

Что у меня не получается.
Делаю так:
mxml:
Код:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
        <mx:Script>
                <![CDATA[
                        import MainApp;
                        private function init():void{
                                var m:MainApp = new MainApp();
                        }
                ]]>
        </mx:Script>
</mx:Application>

MainApp.as:
Код:

package{
        import Reciever;
        import Sender;
       
        public class MainApp{
                public function MainApp(){
                        var r:Reciever = new Reciever();
                        var s:Sender = new Sender();
                       
                }
        }
}

Sender.as:
Код:

package{
        import EventText;
        import flash.display.Sprite;
        public class Sender extends Sprite{
                public function Sender(){
                        this.dispatchEvent(new EventText("EditEvent", "PREVED"));
                }

        }
}

Reciever.as:
Код:

package{
       
        import flash.display.Sprite;
        import mx.controls.Alert;
       
        public class Reciever extends Sprite{
                public function Reciever(){
                        this.addEventListener( "EditEvent", updateListener );
                }
                public function updateListener( e:EventText ):void{
                    Alert.show(e.toString());
                }
        }
}

EventText.as:
Код:

package{
        import flash.events.Event;
       
        public class EventText extends Event {
               
                public var content:String;
               
                public function EventText(type:String, content:String) {
                        super(type);
                        this.content = content;
                }
               
            public override function clone():Event {
              return new EventText(type, content);
            }       
       
        }
}

Что тут не так?

Molecula 15.05.2008 14:29

Пока что решил проблему так:

Я подписываю экземпляр класса на прослушку, который диспатчит событие (s= Sender) и указываю функцию-листенер, как функцию другого экземпляра класса (r = Reciever).
Код:

s.addEventListener(our_custom_Event, r.someFunction);
Но не пойму правильно ли так?


Часовой пояс GMT +4, время: 02:14.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.