我試圖使用LocalConnection將Flex 4.1應用程序與Flash動作腳本2應用程序進行通信。本地連接:在flex 4.1和flash之間進行通信as2
Flash應用程序
包含一個按鈕叫btn01和下面的代碼:
var a:LocalConnection = new LocalConnection();
btn01.onPress = function() {
trace("button clicked");
a.send("abcde","test");
}
,你可以在這裏看到,它發送一個測試命令到名爲「ABCDE」的連接。
Flex應用程序
<?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」和我的客戶端設置爲「本」,這意味着所有的公共職能可以從LocalConnection執行。
SWFLoader元素加載as2 Flash文件。
只要我點擊按鈕,我會看到跟蹤消息,但功能測試不會在Flex應用程序上執行。有任何想法嗎?
更新
兩個應用程序安裝在同一個域,本地主機上居然如此沒有必要的allowDomain使用和這兩個應用程序都是基於網絡的。
我不敢相信我沒有接受。做得好! – JeffryHouser 2010-08-01 20:58:37