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