我试图使用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