事件是需要传递的,这样做并没有错,但是这样的话,我觉得不适合组件的复用。例子如下: mod1.mxml内容: <?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300"> <mx:Script> <!--[CDATA[ public var fun:Function; public function clickTest():void{ fun("我从mod1传到mod2去咯!"); } ]]--> </mx:Script> <mx:Button label="点我测试事件传递" click="clickTest()"/> </mx:Canvas> mod2.mxml内容: <?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300"> <mx:Script> <!--[CDATA[ import mx.controls.Alert; public function alertResult(str:String):void { Alert.show(str); } ]]--> </mx:Script> <mx:Label text="我是Mod2,什么也没有!"/> </mx:Canvas> 主mxml内容: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:mod="com.coarrow.model.*" layout="horizontal" creationComplete="initApp()"> <mx:Script> <!--[CDATA[ private function initApp():void { mod1.fun=mod2.alertResult; } ]]--> </mx:Script> <mx:Panel height="20%"> <mod:Mod1 id="mod1" width="100" height="100"/> </mx:Panel> <mx:Panel height="20%"> <mod:Mod2 id="mod2" x="100" width="100" height="100"/> </mx:Panel> </mx:Application>