Как перенести экземпляр NativeApplication в другое NativeWindow

Не уверен, что мой заголовок точно описывает то, что я пытаюсь сделать, но в основном я создал новое NativeWindow следующим образом (на примере из документации по Adobe NativeWindow http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/NativeWindow.html?filter_flex=4.1&filter_flashplayer=10.1&filter_air=2):

var windowOptions:NativeWindowInitOptions = new NativeWindowInitOptions();
windowOptions.systemChrome = NativeWindowSystemChrome.STANDARD;
windowOptions.type = NativeWindowType.NORMAL;

var newWindow:NativeWindow = new NativeWindow(windowOptions);
newWindow.stage.scaleMode = StageScaleMode.NO_SCALE;
newWindow.stage.align = StageAlign.TOP_LEFT;
newWindow.bounds = new Rectangle(100, 100, 800, 800);

newWindow.activate();

Однако теперь, когда у меня есть новое окно, я хочу закрыть старое окно и сделать новое окно активным NativeApplication, в основном перенося весь контроль на новое. есть идеи как это сделать? Вся помощь высоко ценится.

Редактировать:

Для тех, кто заинтересован, и благодаря предоставленным ответам, вот что я сейчас делаю. Просто создайте файл MXML, используя

<?xml version="1.0" encoding="utf-8"?>

<mx:Window
xmlns:mx="http://www.adobe.com/2006/mxml"
...
>

Вызовите этот MyWindow.mxml или что-то еще, а затем в главном контроллере создайте экземпляр этого, используя

private var myWindow:MyWindow = new MyWindow. 

Затем вы можете соответственно установить минимальные и максимальные атрибуты высоты по ширине, например, myWindow.width = 400. Чтобы открыть окно, вы можете сделать либо window.open(true), либо window.visible = false; window.open(true) - последний делает окно невидимым, но доступным для использования.

1 ответ

Решение

Джефф в значительной степени получил ответ в своем комментарии, но у него гораздо больше кармы, чем у меня, поэтому я прокомментирую в качестве ответа;)

Если вы посмотрите на файл AIR -app.xml, в нем есть элементы, показывающие, является ли приложение изначально видимым и т. Д.

Что вы хотите сделать, это сделать его изначально невидимым. На самом деле вы не хотите, чтобы он вообще имел какое-либо видимое присутствие. Однако он будет создавать собственное окно так, как вам нужно, и, если вам нужно изменить свойства, снесите его и замените новым.

На первый взгляд, я выгляжу довольно просто, но я уверен, что будут некоторые дополнительные осложнения. Каждое Native Window имеет свой собственный этап (IIRC), поэтому, возможно, у вас не будет корректно перемещен resourceManager, например. Я никогда не шел дальше быстрой демонстрации с этим, так что вы можете столкнуться с ограничением, которое непреодолимо (как подсказывает ему интуиция Джеффа)

Другие вопросы по тегам