Sep 20

flex与flash的交互 不指定

bearjia , 23:55 , Flex相关 , 评论(0) , 引用(0) , 阅读(1161) , Via 本站原创 | |
我的一个小CASE主要是以flash来做表现 flex做逻辑
所以在flash中画些按钮啊 之类的
但是遇到了一点小问题
就是远程打开该CASE的第一次 flex会接受不到flash 过来的值
flash代 如下:
v1.addEventListener(MouseEvent.CLICK,b1);
v2.addEventListener(MouseEvent.CLICK,b2);
v3.addEventListener(MouseEvent.CLICK,b3);

function b1(event:MouseEvent):void{
  trace("clickAdmin");
  }
function b2(event:MouseEvent):void{
  trace("clickGbook");
  }
function b3(event:MouseEvent):void{
  trace("clickAbout");
  }

flex代 如下:
<mx:SWFLoader source="swf/nav.swf" height="245.1" width="254.1" id="bearflash" y="0"/>

<mx:Script>
<![CDATA[
       import mx.managers.PopUpManager;
       import mx.controls.Alert;
       import com.bear.jia.caringorm.view.login;              
      internal function init():void{
         var obj:Object=bearflash.content;
         obj.v3.addEventListener(MouseEvent.CLICK,clickAbout);
         obj.v2.addEventListener(MouseEvent.CLICK,clickGbook);
         obj.v1.addEventListener(MouseEvent.CLICK,clickAdmin);       
       }
      public function clickAbout(event:MouseEvent):void{
        var _about:about = new about()
        _about.x = 250;
        _about.y = 120;
        PopUpManager.addPopUp(_about, this, true);
       }
       public function clickGbook(event:MouseEvent):void{
        var gbook:guestBook = new guestBook();
        gbook.x = 250;
        gbook.y = 120;
        PopUpManager.addPopUp(gbook, this, true);

       }
       public function clickAdmin(event:MouseEvent):void{
       var adminLogin:login = new login();  
       adminLogin.x = 350;
    adminLogin.y = 250;
    PopUpManager.addPopUp(adminLogin, this, true);
       }
       ]]>
</mx:Script>


改动后如下
flash代 :
v1.addEventListener(MouseEvent.CLICK,b1);
v2.addEventListener(MouseEvent.CLICK,b2);
v3.addEventListener(MouseEvent.CLICK,b3);

function b1(event:MouseEvent):void{
  dispatchEvent(new Event("clickAdmin"));
  }
function b2(event:MouseEvent):void{
  dispatchEvent(new Event("clickGbook"));
  }
function b3(event:MouseEvent):void{
  dispatchEvent(new Event("clickAbout"));
  }


flex代 :
<mx:SWFLoader source="swf/nav.swf" height="245.1" width="254.1" y="0" complete="Flash(event)" id="flashContent"/>

<mx:Script>
<![CDATA[
       import mx.managers.PopUpManager;
       import mx.controls.Alert;
       import com.bear.jia.caringorm.view.login;
       var flashMc:MovieClip;            
      internal function Flash(event):void{
        flashMc=flashContent.content as MovieClip;
        flashMc.addEventListener("clickAbout",clickAbout);
        flashMc.addEventListener("clickGbook",clickGbook);
        flashMc.addEventListener("clickAdmin",clickAdmin);
       }
      public function clickAbout(event:Event):void{
        var _about:about = new about()
        _about.x = 250;
        _about.y = 120;
        PopUpManager.addPopUp(_about, this, true);
       }
       public function clickGbook(event:Event):void{
        var gbook:guestBook = new guestBook();
        gbook.x = 250;
        gbook.y = 120;
        PopUpManager.addPopUp(gbook, this, true);

       }
       public function clickAdmin(event:Event):void{
       var adminLogin:login = new login();  
       adminLogin.x = 350;
    adminLogin.y = 250;
    PopUpManager.addPopUp(adminLogin, this, true);
       }
       ]]>
</mx:Script>


总结了一下
自己想得过于简单了,原本以为把flash产生的数据转换一下数据类型就可以万事大吉。唉,还是时间广播比较好啊,不再取巧了。
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]