Flash AS3预加载事件侦听器陌生度
我有一个预载器,可以加载和连接swf,如下所示:Flash AS3预加载事件侦听器陌生度,flash,actionscript-3,preloader,addeventlistener,Flash,Actionscript 3,Preloader,Addeventlistener,我有一个预载器,可以加载和连接swf,如下所示: stage.addChild(loadedSWF); 在loadedSWF中,我有一个eventlistener: stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); 当添加到显示列表的文本字段被聚焦时,onKeyDown停止响应 但是 当loadedSWF在没有预加载程序的情况下打开时,onKeyDown在焦点位于文本字段时工作 为什么会发生这种情况?如何控制这种情况? 这是
stage.addChild(loadedSWF);
在loadedSWF中,我有一个eventlistener:
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
当添加到显示列表的文本字段被聚焦时,onKeyDown停止响应
但是
当loadedSWF在没有预加载程序的情况下打开时,onKeyDown在焦点位于文本字段时工作
为什么会发生这种情况?如何控制这种情况?
这是预加载程序:
l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop);
l.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
l.load(new URLRequest("http://www.foo.com/foo.swf"));
function loop(e:ProgressEvent):void
{
perc = Math.round(e.bytesLoaded / e.bytesTotal * 100);
lt.text = String(perc);
if (perc >= 100)
l.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, loop);
}
function done(e:Event):void
{
l.contentLoaderInfo.removeEventListener(Event.COMPLETE, done);
stage.addChild(l);
}
将键盘事件的实例化放入OnAddedStatage事件中
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
function onAddedToStage(evt:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
}
这将阻止它在独立swf中工作,但它在加载到其loader shell中时仍能工作。这是一个事件安全问题,我不得不为此退出AS3手册,在冒泡和捕获阶段,事件有安全限制。在我的情况下,属于预载器的阶段对于加载的swf是不安全的 要解决此问题,请将以下行添加到正在加载的swf
Security.addDomain(“http://www.yourdomain.com");代码>
我假设这条线已经在预加载程序中
还要检查swf是否有权访问它附加在您可以使用的加载程序类中的父级
l.contentLoader.childAllowsParent
那么预加载程序不是问题吗?您可能应该发布一些代码。将预加载程序添加到questionwell便便中。这是我的猜测:)