Я пытаюсь установить связь между приложением flex 4.1 и приложением сценария флэш-действия 2 с помощью LocalConnection.
приложение флэш-памяти
содержит кнопку btn01 и следующий код:
var a:LocalConnection = new LocalConnection();
btn01.onPress = function() {
trace("button clicked");
a.send("abcde","test");
}
вы можете видеть здесь, что он отправляет тестовую команду соединению с именем 'abcde'.
flex application
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" initialize="init()">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
private function init():void {
var a:LocalConnection = new LocalConnection();
a.client=this;
a.connect("abcde");
}
public function test():void {
Alert.show("test");
}
]]>
</fx:Script>
<mx:SWFLoader source="/location/as2-flash-file.swf" />
как выМожно видеть, что в приложении Flex я подключаюсь к LocalConnection с именем «abcde» и устанавливаю для клиента значение «this», что означает, что все общедоступные функции могут выполняться из LocalConnection.
элемент SWFLoader загружает as2флеш файл.
всякий раз, когда я нажимаю кнопку, я вижу сообщение трассировки, но функциональный тест не выполняется в приложении flex.какие-нибудь идеи?
обновление
оба приложения находятся в одном домене, фактически на локальном, так что нет необходимости использовать allowDomain, и оба приложения работают в Интернете.