我是一位经验丰富的 AS3 开发人员,第一次进行 AIR 开发以创建 iPhone 应用程序。我正在尝试使用 StageOrientationEvent 和相关类来解释可变的设备方向,并且在尝试在台式机上进行测试时遇到了 VerifyError,大概是因为与方向相关的类是特定于移动设备的。
iPhone 打包程序的 Adobe 文档暗示可以测试包含特定于移动设备的代码的应用程序,只要您在实际使用它们之前使用 Stage.supportsOrientationChange 之类的标志来测试功能。不幸的是,似乎 AIR 在启动时检查了不可接受的类,因此检查是无用的。
每次切换设备时,如何在不注释掉特定于移动设备的代码的情况下在桌面上测试此应用程序?
相关代码:
package
{
import flash.display.Sprite;
import flash.display.Stage;
import flash.display.StageAlign;
import flash.display.StageOrientation;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.StageOrientationEvent;
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
if (Stage.supportsOrientationChange)
{
stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, onOrientationChange);
}
}
private function onOrientationChange(event:StageOrientationEvent):void
{
switch (event.afterOrientation)
{
case StageOrientation.DEFAULT: //ignore. Landscape.
break;
case StageOrientation.ROTATED_RIGHT:
stage.setOrientation(StageOrientation.ROTATED_RIGHT);
break;
case StageOrientation.ROTATED_LEFT:
stage.setOrientation(StageOrientation.ROTATED_LEFT);
break;
case StageOrientation.UPSIDE_DOWN: //ignore. Landscape.
break;
}
}
}
}
我得到的错误是:
[Fault] exception, information=VerifyError: Error #1014: Class flash.events::StageOrientationEvent could not be found.