Загрузка внешнего приложения SWF в новом окне Air с функцией изменения размера - PullRequest
3 голосов
/ 08 марта 2010

Я пытаюсь загрузить локальное приложение SWF в свое приложение Air через класс SWFLoader. Класс SWFLoader отображается в новом Window. Поэтому я пытаюсь изменить размер окна автоматически, когда приложение Flash изменяет размер. Но вот проблема. SWFLoader не получает никаких событий, когда приложение загрузчика было изменено.

Проблема, похоже, в ограничениях в песочнице. Я могу вызывать методы в childSandboxBridge и parentSandboxBridge Объектах, которые я установил в LoaderInfo содержимого SWFLoaders (загруженного приложения SWF). Но я не могу слушать какие-либо ResizeEvents или что-то подобное, когда я изменяю размер загруженного приложения.

Мне известен обходной путь с классом Loader и свойством codeExecution, но я не хочу обходить Air Sandbox - если возможно.

Может кто-нибудь помочь мне с этим?

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 12 марта 2010

(Примечание: другие проблемы с песочницей безопасности могут быть частью ваших проблем. При этом ...) Если ваш sandboxBridge установлен, и вы можете вызывать методы, хотя и как вы уже упоминали, тогда вы можете отправлять и прослушивать события, которые всплывают через swfLoader (и они действительно всплывают).

В качестве теста я бы попытался отправить тест flash.events.Event с bubbles = true, когда загруженный SWF-файл захватывает свой внутренний resizeEvent. (ResizeEvents по умолчанию не всплывает и может быть источником вашей проблемы).

1 голос
/ 29 ноября 2010

Я нахожу этот способ, помещая его в childSwf:

addEventListener(Event.ADDED,added)

function added(e){
    if (root.parent.parent){
    root.parent.parent.stage.addEventListener(Event.RESIZE, mainResizeHandler);
}

function mainResizeHandler(e:Event = null):void{
    trace("width: "+stage.stageWidth+" | height"+stage.stageHeight);
}
...