flex与Flash CS SWF交互方法


一直让自己烦恼的Flex 与 Flash 交互问题,今天终于解决了,这个没有先前想的那么复杂,其实也是很容易实现的,直接用Flex去调用 Flash CS3 帧里面的function 就ok了。为了显示效果,在双方的界面里面分别放置了一个文本输入框和一个按钮。

下面是Flex端的代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[ 
//把当前的application引用告诉swf
private function onSwfLoaded(event:Event):void{
Object(myloader.content).setApp(this);
}

//准备给swf调用的方法
public function appshowtext(str:String):void{
textinput.text=str;
}

]]>
</mx:Script>
<mx:SWFLoader id="myloader" source="local.swf" creationComplete="onSwfLoaded(event)"/>
<mx:TextInput id="textinput"/>
<mx:Button label="send to local.swf" click="Object(myloader.content).swfshowtext(textinput.text);"/>
</mx:Application>

这是Flash CS3里面的第一帧的代码:

var app:Object;

function swfshowtext(str:String):void{
display_txt.text=str;
}

function setApp(ap:Object):void{
this.app=ap;
}

mybtn.addEventListener(MouseEvent.CLICK,onClick);

function onClick(event:MouseEvent):void{
app.appshowtext(display_txt.text);

代码输入完后,将生成的SWF文件拷贝到FLex工程中,在Flex的Application主文件中,用<mx:SWFLoader/>的方式将SWF导入,这样编译运行后,你就可以在FLex中获得SWF中的信息,而且SWF也可以获得Flex组件中的信息了!o(∩_∩)o...

你可能感兴趣的:(xml,Flex,Flash)