私は経験豊富な AS3 開発者で、iPhone アプリを作成するために初めて AIR 開発を行います。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.