AIR 上的 stage.mouseLock - 错误 #1056
Posted
技术标签:
【中文标题】AIR 上的 stage.mouseLock - 错误 #1056【英文标题】:stage.mouseLock on AIR - Error #1056 【发布时间】:2012-10-23 10:41:05 【问题描述】:我在 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】:您的代码是正确的,所以我认为您需要检查 FlashDevelop 是否确实至少针对 AIR SDK 3.2。
首先,注释掉有问题的代码并在构造函数中跟踪运行时版本:
trace("AIR SDK Version: ", NativeApplication.nativeApplication.runtimeVersion);
这应该至少输出:
AIR SDK 版本:3.2.x.xxxx
如果不是,您应该检查 FlashDevelop 的目标是哪个 Flex SDK(带 AIR):
工具 > 程序设置 > AS3Context > 语言 > 已安装的 Flex SDK
如果您不确定您拥有哪个版本,或者您的目标版本早于 AIR SDK 3.2,您可以从 Adobe 的游戏网站 (Download the Adobe® AIR® SDK) 下载最新的 AIR SDK(与 Flex SDK 预合并),保存它到磁盘并将其位置链接到 FlashDevelop。
[编辑]
我忘记提及的最后一件事:确保您的项目平台目标设置为至少 AIR 3.2,并且您的项目 AIR SDK 目标设置不会覆盖您的全局 AIR SDK 目标设置。
项目 > 属性
[编辑 2]
尝试手动覆盖目标 swf 版本并将其分配给版本 17。
项目 > 属性 > 编译器选项 > 高级 > 其他编译器选项
将以下内容添加到编译器选项数组中:
-swf-version=17
【讨论】:
如上所述,我的 AIR SDK 是 3.4 (AIR SDK Version: 3.4.0.2710
),但我仍然不知道发生了什么...
我之前遇到过一些奇怪的错误,因为手动将 Flex 4.6 SDK 与最近的 AIR SDK 错误地合并。也许你也做过同样的事情?也许尝试从 Adobe 的网站下载预先合并的 AIR SDK,看看是否可以为您解决错误。你在运行 FlashDevelop 4.0.4 RTM 吗?
我全新安装了我的 FlashDevelop (4.1.0)。它从头开始下载了 AIR SDK、Flex SDK、FlashPlayerDebugger……我已经开始了一个新的(干净的)项目,只有这个测试类。即使在这些之后,问题仍然存在。
疯了!你的代码对我来说很好。您是否检查了 application.xml 以确保它使用了正确的应用程序命名空间?应该是<application xmlns="http://ns.adobe.com/air/application/3.4">
一个,还有一点必须注意...添加 swf-version 标签而不更改 application.xml
将导致编译失败...以上是关于AIR 上的 stage.mouseLock - 错误 #1056的主要内容,如果未能解决你的问题,请参考以下文章
iOS 上的 Flash/AIR 舞台视频 - 有可能吗?表现如何?
Android 上的 MIDI:Java 和/或 AIR 库