小编WgF*_*orm的帖子

为什么我的EVENT.ACTIVE会触发两次?

当我EVENT.ACTIVATE向我的项目添加一个监听器,然后alt-tab离开并回到我的项目时,它会触发两次.

编辑:shaunhusain我似乎找到了问题的原因,虽然没有解决方案.当运行独立播放器版本11+时,事件触发2x.当运行独立播放器版本<11或浏览器中的任何版本时,它会触发1x.因此,最近版本的Flash播放器投影机可能存在错误.我要确定准确的版本并将其报告给adobe,看看会发生什么.感谢任何阅读此内容并试图提供帮助的人!

我希望每当我改变焦点时它就会发射,我只是不希望每次改变焦点时它都会发射两次.

为什么是这样?难道我做错了什么?防止这种行为的最佳方法是什么?

这似乎是一个常见的问题,但谷歌没有发现任何事情.

码:

package 
{
    import flash.display.Sprite;
    import flash.events.Event;

    public class Main extends Sprite 
    {

        public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }

        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            // entry point
            stage.addEventListener(Event.ACTIVATE, test);
        }

        private function test(e:Event):void
        {
            trace(e.target);
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

实际结果:

[object Stage]
[object Stage]
Run Code Online (Sandbox Code Playgroud)

期望的结果:

[object Stage]
Run Code Online (Sandbox Code Playgroud)

我是否将监听器添加到舞台或其他任何东西似乎没有区别,行为是相同的.

EVENT.DEACTIVATE也会发生同样的事情.其他如鼠标工作正常.

我的目标是暂停游戏EVENT.DEACTIVATE并取消暂停EVENT.ACTIVATE.问题是当事件触发两次时,它会调用两次unause函数,这会产生不必要的后果.

actionscript-3

5
推荐指数
1
解决办法
1918
查看次数

标签 统计

actionscript-3 ×1