Я решил эту проблему. Симулятор возвращает действительное разрешение экрана симулятора в обработчике Event.RESIZE, это можно сделать так:
public class Main extends Sprite
{
public function Main()
{
super();
//register to add to stage
this.stage.addEventListener(Event.RESIZE, onResize);
this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
// support autoOrients
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
}
private function onAddedToStage(event:Event):void
{
this.removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
private function onResize(event:Event):void
{
this.stage.removeEventListener(Event.RESIZE, onResize);
//width must be bigger then height, because we in landscape mode
var w:int = Math.max(this.stage.stageWidth, this.stage.stageHeight);
var h:int = Math.min(this.stage.stageWidth, this.stage.stageHeight);
//draw black background
with( graphics )
{
beginFill(0x0)
drawRect(0,0,w,h);
}
init();
}
}
Надеюсь, это поможет кому-то вроде меня.