首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AS3:全屏模式问题

AS3:全屏模式问题
EN

Stack Overflow用户
提问于 2014-11-24 08:51:25
回答 1查看 257关注 0票数 0

这是我的密码

代码语言:javascript
复制
function btnClick (e:MouseEvent):void
{
    if (stage.displayState == StageDisplayState.NORMAL)
    {
        stage.displayState = StageDisplayState.FULL_SCREEN; 
        bcgr.visible = true;
        function imgZoom (e:MouseEvent):void
        {
            //zooming - code not relevant to my issue
        }
        stage.addEventListener (MouseEvent.MOUSE_WHEEL, imgZoom);
    }
    else
    {
        //option1:  stage.removeEventListener (MouseEvent.MOUSE_WHEEL, imgZoom);
        stage.displayState = StageDisplayState.NORMAL;
        bcgr.visible = false;
        //option2:  stage.removeEventListener (MouseEvent.MOUSE_WHEEL, imgZoom);
    }
}
mybtn.addEventListener (MouseEvent.CLICK, btnClick);

这段代码中有两个我无法解决的问题。

首先,当我进入FULL_SCREEN - mode时,bcg.visible变成了true,当我通过单击mybtn退出FULL_SCREEN - mode时,bcg.visible变成了false,但是当我通过点击escape退出时就没有了。如何使它工作呢?

其次,当我退出eventlistener imgZoom时,我不想删除FULL_SCREEN - mode。但是,当我将removeLEventlistener放置为option1,然后返回到NORMAL - mode时不起作用,而当我将removeLEventlistener放置为option2时,listener就不会删除?

有人能帮忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-24 09:40:37

可以通过在舞台上添加一个侦听器来通知您全屏输入/退出事件:stage.addEventListener(FullScreenEvent.FULL_SCREEN, ...)

下面是一个指向舞台文档的链接:US/FlashPlatform/reference/actionscript/3/flash/display/Stage.html#event:fullScreen

对于imgZoom问题,需要将定义移到btnClick函数之外。imgZoom变量是btnClick函数的本地变量,因此每次调用该函数时都会重新定义该变量。这意味着第二次单击按钮imgZoomundefined,您永远不能删除之前的事件侦听器。

将函数定义移出btnClick处理程序将允许您稍后再次删除它。

这是所有的东西在一起:

代码语言:javascript
复制
function imgZoom (e:MouseEvent):void
{
    //zooming - code not relevant to my issue
}

function fullScreenListener (e:FullScreenEvent)
{
    bcgr.visible = e.fullScreen;
    if (e.fullScreen)
    {
        stage.addEventListener (MouseEvent.MOUSE_WHEEL, imgZoom);
    }
    else
    {
        stage.removeEventListener (MouseEvent.MOUSE_WHEEL, imgZoom);
    }
}

function btnClick (e:MouseEvent):void
{
    if (stage.displayState == StageDisplayState.NORMAL)
    {
        stage.displayState = StageDisplayState.FULL_SCREEN; 
    }
    else
    {
        stage.displayState = StageDisplayState.NORMAL;
    }
}

stage.addEventListener (FullScreenEvent.FULL_SCREEN, fullScreenListener);
mybtn.addEventListener (MouseEvent.CLICK, btnClick);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27100930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档