我创建了一个活动:
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”);
}
我从mail.swf中的dashboard.swf加载并获取实例 当我从adobe flash professional运行它时,它可以正常工作,但是当我从浏览器打开它时它将无法工作。
任何想法!! ?? 谢谢你的帮助,对不起语言很抱歉。
答案 0 :(得分:0)
我只是尝试在TimeOutEvent类中进行一些小的更改以及我添加eventListener的方式。我测试并且工作正常。
按照我的更改:
// 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');
}
答案 1 :(得分:0)
在Flash Pro中运行代码相当于将代码作为Windows AIR应用程序运行。但是,在浏览器中运行是一个非常不同的事情。浏览器中的某些运行时限制可能阻碍您在SWF文件之间进行通信的工作。