Flex与Flash之间的交互

在Flex开发过程中我们常常会调用外部Flash来表现更加绚烂的效果,但是有些时候我们不仅限于调用该外部Flash,还需要与该外部Flash进行交互,已达到更好的效果,下面是尝试着利用Flex与Flash进行交互的详细介绍:

Flex部分,在Flex中添加如下代码:

<mx:Script>
  <![CDATA[
   import mx.controls.Alert;

  //测试函数,flash调用Flex的函数
   public function FlashTest(v:String):void{
    Alsert.show(v,"测试");
   }
   

  //加载完外部Flash后初始化Flash函数
   public function loadSWF():void{
    Object(swfLoader.content).InitApp(this);
   }
   

  //Flex调用Flash函数
   public function invokeFlash():void{
    Object(swfLoader.content).swfShowText((Math.random()*100).toString());
   }
   
   
  ]]>
 </mx:Script>
 <mx:SWFLoader id="swfLoader" x="56" y="37" source="flash/test.swf" complete="loadSWF()"/>
 <mx:Button x="44" y="209" label="调用flash函数" click="invokeFlash()"/>

 

Flash部分的代码:

在第一帧加入以下代码:

var flexApp:Object;
function InitApp(ap:Object):void{
 this.flexApp=ap;
}
myBtn.addEventListener(MouseEvent.CLICK,onClick);

function onClick(e:MouseEvent):void{ 
 flexApp.testf("我是以参数的形式传过来的!");
}

function swfShowText(v:String):void{
 txtTest_txt.text=v;
}

function toFlex(eve:TimerEvent):void{
 flexApp.FlashTest();
}

在以上代码中txtTest_txt为一个动态文本框,用来接收Flex传递进来的参数,myBtn是自定义的一个按钮元件,InitApp是用来初始化该Flash,并接收Flex传递来的对象

posted @ 2010-07-05 14:23  鬼手如冰  阅读(1353)  评论(0编辑  收藏  举报