Я опытный разработчик AS3, который впервые разрабатывает AIR, чтобы создать приложение для iPhone. Я пытаюсь учитывать переменные ориентации устройств, используя StageOrientationEvent и связанные классы, и я получаю VerifyError при попытке протестировать на настольной машине, предположительно потому, что связанные с ориентацией классы являются специфическими для мобильных устройств.Как избежать проверки VerifyError при тестировании кода с использованием классов мобильных устройств в AIR/AS3?
Документы Adobe для iPhone-упаковщика подразумевают, что можно протестировать приложение, содержащее код, специфичный для мобильных устройств, до тех пор, пока вы используете флаги, такие как 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.