Встраивание приложения Flex и связь со старым приложением Flash 8 - PullRequest
1 голос
/ 12 февраля 2009

В настоящее время я поддерживаю приложение, написанное на Flash 8 (AS2), которое используется для встраивания и управления некоторыми автоматически генерируемыми SWF-файлами. Автоматически сгенерированные SWF-файлы также являются Flash 8 (на самом деле они работают по крайней мере в 7, возможно, даже старше), поэтому мое текущее приложение может напрямую ссылаться на переменные и функции во встроенном SWF.

Сейчас мы работаем над новой версией этого приложения, написанной на Flex. Нам нужно продублировать функциональность текущего приложения: встроить и управлять автоматически генерируемыми SWF-файлами AS2. Однако SWF на основе AS3 не могут ссылаться на переменные или функции во встроенном SWF на основе AS2. К сожалению, у нас нет контроля над инструментом автоматической генерации, поэтому мы не можем изменить его для вывода SWF на основе AS3.

Единственное реальное решение для получения SWF-файлов AS3 и AS2 - это использование LocalConnection. Мне нужно создать оболочку AS2 SWF, которая будет загружать автоматически сгенерированный SWF и действовать как прокси, связываться с моим приложением Flex через LocalConnection и делать все, что нужно сделать с автоматически сгенерированным SWF. Тем не менее, есть проблема с этим. Прокси-SWF должен знать, какой идентификатор LocalConnection использовать, но я не могу найти способ передать ему идентификатор (я не могу просто жестко закодировать какой-то случайный идентификатор, так как мне нужно иметь возможность поддерживать несколько экземпляров этого идентификатора). приложение одновременно).

Кто-нибудь решил это? Есть ли способ получить какой-то уникальный идентификатор для встроенного SWF?

Ответы [ 3 ]

2 голосов
/ 13 февраля 2009

Не уверен, что я точно понимаю, как работает приложение, поэтому извините, если я ошибаюсь. Если экземпляр flex должен загружать прокси-сервер AVM1, не будет ли возможно внедрить flash-var через URL-адрес, содержащий сгенерированный идентификатор для LocalConnection, который будет использоваться?

В дополнение к вашему комментарию, просто добавили, как отправлять переменные в фильм AVM1. По крайней мере, это прекрасно работает локально (не тестировалось в сети):

AS3 - FP10 :

loader = new Loader();

var request:URLRequest = new URLRequest("as2proxy.swf");
var variables:URLVariables = new URLVariables();
variables.id = "local_connection_id";
request.data = variables;

loader.load(request);

AS2 - FP7 (первый кадр на временной шкале "as2proxy.swf" ):

trace(id); // (_root.id)

Кстати, наткнулся на следующий класс из Libspark: http://www.libspark.org/svn/as3/ForcibleLoader/src/org/libspark/utils/ForcibleLoader.as

0 голосов
/ 15 октября 2009

Вот довольно интересная статья на тему общения через границы AVM:

http://asserttrue.com/articles/2006/05/16/library-type-assets-in-actionscript-3-0-using-assets-created-with-current-releases-of-flash-authoring

0 голосов
/ 12 февраля 2009

Могут ли оба общаться через сервер (т.е. посредник)?

...