<?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; display_txt.autoSize=TextFieldAutoSize.LEFT; 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); }
通过Event通信,这一点我早发现了,还可以通过单例类通信.
这个例子的特点在于用Event传递Flex Application的引用,也是值得借鉴.
from: http://www.flexs.cn/post/swf_Localconnection_20080529.html