AIR上的stage.mouseLock - 错误#1056

时间:2012-11-02 18:15:51

标签: actionscript-3 air

我在 AIR (3.2-3.4)

上设置stage.mouseLock属性时遇到问题

FlashPlayer (11.2-11.4)项目中编译以下类可以正常工作:

package  
{
    import flash.display.Sprite;
    import flash.display.StageDisplayState;
    import flash.events.KeyboardEvent;

    public class Main extends Sprite 
    {
        public function Main() 
        {
            stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
        }

        private function onKeyDown(event:KeyboardEvent):void 
        {
            stage.displayState = StageDisplayState.FULL_SCREEN;
            stage.mouseLock = true;
        }
    }
}

但是当我尝试编译针对AIR而不是FlashPlayer的同一个类时,会发生以下错误:

Error #1056: Cannot create property mouseLock on flash.display.Stage.

我正在使用AIR SDK Version: 3.4.0.2710和FlashDevelop 4.1.0作为我的IDE。

修改: 即使在完全安装FlashDevelop,从头开始下载Flex SDK,AIR SDK,FlashPlayerDebugger之后,问题仍然存在。

编辑2 : 谢谢你,TheDarkIn1978。 添加-swf-version=17并编辑application.xml以手动使用正确的版本(3.4)后,它有效... 我将尝试找出它是否是最新FlashDevelop或AIR SDK中的错误(可能在FD中)......

1 个答案:

答案 0 :(得分:1)

您的代码是正确的,所以我认为您需要检查FlashDevelop是否确实至少定位 AIR SDK 3.2

首先,注释掉有问题的代码并在构造函数中跟踪运行时版本:

trace("AIR SDK Version: ", NativeApplication.nativeApplication.runtimeVersion);

这至少应该输出:

  

AIR SDK版本:3.2.x.xxxx

如果没有,您应该检查哪个Flex SDK(使用AIR)FlashDevelop正在定位:

工具>节目设置> AS3Context>语言>已安装的Flex SDK

如果您不确定自己拥有哪个版本,或者您的目标是早于AIR SDK 3.2的版本,则可以从Adobe的游戏网站(Download the Adobe® AIR® SDK)下载最新的AIR SDK(与Flex SDK合并)。 ,将其保存到磁盘并将其位置链接到FlashDevelop。

enter image description here

<强> [编辑]


我忘了提及的最后一件事:确保您的项目平台目标至少设置为AIR 3.2,并且项目AIR SDK目标设置不会覆盖您的全局AIR SDK目标设置。

项目&gt;属性

enter image description here

enter image description here

[编辑2]


尝试手动覆盖目标swf版本并将其分配给版本17.

项目&gt;属性&gt;编译器选项&gt;高级&gt;其他编译器选项

将以下内容添加到编译器选项数组中:

  

-swf版本= 17

enter image description here