Это возможно, для начала вам нужно убедиться, что сцена не масштабируется автоматически при изменении окна просмотра игрока, и выбрать выравнивание для того места, где ваша сцена будет «прилипать» при увеличении области просмотра:
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
Как только это будет сделано, вы должны прослушать событие RESIZE сцены, чтобы при изменении размера окна / области просмотра проигрывателя вы могли проверить новый размер и соответствующим образом ретранслировать ваш пользовательский интерфейс:
var resizeTimeout:uint;
stage.addEventListener(Event.RESIZE, onResize);
function onResize(e:Event=null):void
{
// Try setting a delay to workaround a weird bug when leaving fullscreen mode where the
// dimensions aren't updated properly, even though a resize event is triggered..?
if (resizeTimeout)
clearTimeout(resizeTimeout);
resizeTimeout = setTimeout(
function ()
{
trace("resizing: " + stage.stageWidth+"x"+stage.stageHeight);
// Re-layout from here
},
250);
}
Как вы видите, я работаю над ошибкой, которая может и не потребоваться в вашем случае. Если режим масштабирования не отключен, проигрыватель автоматически изменит размер сцены, чтобы она соответствовала области просмотра, и приложение не будет учитывать изменения. Это может привести к проблемам при изменении соотношения ширина / высота.
В любом случае, я надеюсь, что я понял большую часть этого правильно, прошло некоторое время с тех пор, как мне пришлось с этим справиться, у меня просто получилось, что этот кусок кода лежал неподвижно из старого проекта.