Связь между двумя приложениями Flex - PullRequest
1 голос
/ 06 августа 2010

У меня есть два веб-приложения, написанные на Flex, которые я хотел бы интегрировать.Мне бы хотелось, чтобы одно приложение Flex (назовем его приложением A) вызывало второе приложение Flex (назовем его приложением B).Приложение A имеет доступ только к SWF-файлу приложения B (но не к исходному коду).Когда приложение A вызывает приложение B, оно должно иметь возможность передавать некоторые данные в приложение B. После вызова приложения B оно должно иметь возможность передавать некоторые данные обратно в приложение A. Эти два приложения будут размещены на одном сервере, но будутиспользовать другой код сервера.

Самый простой способ реализации этого (или один из способов быть более точным) состоит в том, чтобы в приложении A был элемент UI (кнопка, ссылка, пункт меню и т. д.), который вызывал быПриложение B. Но в этом случае два приложения Flex не могут взаимодействовать напрямую (поскольку одновременно активно только одно), и им придется взаимодействовать через код сервера, чего я бы хотел избежать.

Вкратце приложение A должно вызвать приложение B, передать ему некоторые данные.Приложение B должно выполнять свою работу, отображать некоторый контент и иметь возможность передавать некоторые данные обратно в приложение A.

Мне известно о LocalConnection, и я видел похожий вопрос , но в этом случае мне придется иметь оба приложения в одном окне браузера.Это было бы приемлемо в некоторой степени, но только если приложение B содержится в приложении A (не если они оба находятся на одной и той же HTML-странице).Будет ли LocalConnection работать в этом случае?

Есть ли у вас какие-либо рекомендации о том, как реализовать этот вид связи?

Ответы [ 2 ]

1 голос
/ 28 декабря 2010

Есть еще один способ сделать это.Вы можете загрузить () второй SWF с помощью обычного загрузчика, чем вы можете:

var app:Class = mLoader.contentLoaderInfo.applicationDomain.getDefinition("mx.core::Application");

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

1 голос
/ 07 августа 2010

Вы можете использовать LocalConnection для связи напрямую между двумя веб-SWF.Не должно быть никаких ограничений, что оба приложения находятся в одном окне браузера.Они оба должны работать на одной машине.

Я не совсем уверен, что вы имеете в виду, когда одно приложение Flex вызывает второе.Но вы должны иметь возможность использовать NavigateToURL для загрузки другой страницы.Я считаю, что он поддерживает новые окна, которые фактически будут одним приложением, запускающим другое.Вы также можете макетировать что-то с iFrames и ExternalInterface.

...