2015-03-09 1 views
0

Я создал событие:событие отправляется не получит в ActionScript

package { 
    import flash.events.Event; 
    public class TimeOutEvent extends Event{ 
     public static const TIMEOUT:String = "timeOut"; 
     public function TimeOutEvent(
      type:String=TIMEOUT,bubbles:Boolean=true, cancelable:Boolean=false 
     ){ 
      super(type, bubbles, cancelable); 
     } 
     public override function clone():Event{ 
      return new TimeOutEvent(type,bubbles, cancelable); 
     } 
    } 
} 

И отправил его в другой класс:

dispatchEvent(new TimeOutEvent(TimeOutEvent.TIMEOUT)); 

оба этого два класса находятся в dashboard.swf файле, и Я слушаю это событие в другой SWF-файл (main.swf):

addEventListener("timeOut",timeOut); 

public function timeOut(e:Event):void{ 
    trace(“horaaaaa”); 
} 

Я загрузил и получил экземпляр из dashboard.swf в почте. swf Это нормально и работает, когда я запускаю его из Adobe Flash Professional, но не будет работать, когда я открою его из браузера.

любая идея !! ?? благодарит за вашу помощь, извините за очень плохой язык.

ответ

0

Я просто попытался внести небольшие изменения в ваш класс TimeOutEvent и способ добавления события в список событий. Я тестировал и отлично работает.

Последующие мои изменения:

// TimeOutEvent.as 
package 
{ 
    import flash.events.Event; 

    public class TimeOutEvent extends Event 
    { 
     public static const TIME_OUT:String = 'timeOut'; 

     public function TimeOutEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false) 
     { 
      super(type, bubbles, cancelable); 
     } 

     override public function clone():Event 
     { 
      return new TimeOutEvent(type, bubbles, cancelable); 
     } 
    } 
} 

// Main.as 

addEventListener(TimeOutEvent.TIME_OUT, timeOutHandler); 

dispatchEvent(new TimeOutEvent(TimeOutEvent.TIME_OUT)); 


private function timeOutHandler(event:TimeOutEvent):void 
{ 
    trace('horaaaaa'); 
} 
+0

Нет, это не работа! Вы отправляете код отправки и прослушиваете код в двух разных проектах? Я думаю, проблема заключается в том, что событие должно отправлять один проект или swf-файл и должно прослушивать другой SWF-файл. –

+0

, если у вас есть доступ к классу TimeOutEvent (импорт соответствующего класса), вы сможете заставить его работать. Если вы отправляете из одного проекта, который не имеет доступа к этому классу, это не сработает, конечно. – gabriel

+0

да, у меня есть доступ к классу TimeOutEvent, так как я сказал, что он отлично работает в windows flash palayer, но не работает в браузере. и мне это нужно в браузере. –

0

Запуск кода в Flash Pro эквивалентно запуску кода в качестве приложения для Windows AIR. Однако работать в браузере - совсем другое дело. Это может быть некоторые ограничения времени выполнения в браузере, которые мешают вашим усилиям связываться между SWF-файлами.