2009-02-12 2 views
1

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

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

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

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

ответ

2

Не уверен, что я получаю именно то, как приложение работает, поэтому извините меня, если я ошибаюсь. Если экземпляр 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

Можно ли встроить FlashVars в URL? Если они смогут, тогда это будет работать отлично, но я не думал, что это возможно. Флэш автоматически справляется с этим? – Herms

+0

Я не уверен, что вижу использование этого класса, с которым вы связаны. Я в основном вижу, что он делает, но я не вижу причины для этого. – Herms

+0

, так что параметры URL-адреса в URL-адресе рассматриваются как flashvars? Я должен попробовать это. Благодаря! – Herms

0

Могут ли они взаимодействовать через сервер (то есть посредник)?

+0

Вот что я думаю об этом, но я все еще нужен способ, чтобы определить, какой экземпляр есть. У меня есть идея, которая может работать, но нужно исследовать ее немного больше. – Herms

Смежные вопросы