`
vini123
  • 浏览: 38141 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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
 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics