Flash Player 11.3中使用全屏交互和鼠标锁定功能 [
全屏交互功能:
Flash Player 11.3(目前为beta版本 labs.adobe.com)有一新功能,允许应用在全屏模式下使用全键盘输入。
要使用此全屏交互新功能,你必须先在HTML嵌入代码中设置“allowFullscreenInteractive =true”的变量值。接着,在ActionScript中对显示状态进行正确设置, stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;,以保证应用能够接入全屏交互模式。关于此模式的正确呈现:用户需要先点击“allow”才能进入全屏交互模式。它长这样:
开发者可以为此新特性进行监听,通过FullScreenEvent.FULL_SCREEN_INTERACTIVE_ACCEPTED事件能够知晓用户点击allow按钮。
鼠标锁定功能
Flash Player 11.2以及后续版本支持鼠标锁定功能。仅在全屏模式,你才能够开启鼠标锁定,stage.mouseLock = TRUE。11.3有个bug,将于11.4修正,而后我将对此11.3bug提出解决方案。正因为此功能只能在全屏模式下使用,所以为FullScreenEvent.FULL_SCREEN_INTERACTIVE_ACCEPTED事件的响应函数设置stage.mouseLock = TRUE变得至关重要,而这就是bug所在。假使你不在该响应函数里设stage.mouseLock = TRUE,那它将不会被正确设置,相当于一直保持false值。这就意味着你必须等待的若干时间后才能对其进行设置。在我github相关代码示例中,我添加一flag并监听MOUSE_MOVE来赋值stage.mouseLock = TRUE。以下为代码片段:
protected function mouseMoveHandler(event:MouseEvent):void { if (isFirstTime == true && stage.mouseLock == false) { isFirstTime = false; errorMessage.text = "here: " + stage.mouseLock; stage.mouseLock = true; } if (stage.mouseLock) { errorMessage.text = "here: " + event.movementX; deltaX = event.movementX; } else { //deltaX = event.stageX - lastX; //lastX = event.stageX; } } protected function fullscreenHandler(event:FullScreenEvent):void { if (event.type == FullScreenEvent.FULL_SCREEN_INTERACTIVE_ACCEPTED) { isFirstTime = true; //***** //对Cyril(Flash Player 11.3)来说,这是个mouselock无法设为true的bug, //解决办法是使用 isFirstTime接入,Flash Player 11.4将对此行为进行修正 //***** stage.mouseLock = true; trace("["+event.type+"]Set mouse lock: " + stage.mouseLock); errorMessage.text = "["+event.type+"]Set mouse lock: " + stage.mouseLock; } else { isFirstTime = false; } }
文章来源:http://bbs.wefdc.com/forum.php?mod=viewthread&tid=378&highlight=Flash%2BPlayer%2B11.3