Flex与Flash通讯

Flex是开发Ria的利器,Flash在动画 游戏等方面较强大,可以制作出更生动 形象,富有乐趣性的交互产品来。

在多数情况下需要2者结合。

两者之间的通讯是依靠事件机制完成的。

以下的例子是:Flash提交数据给Flex,Flex改变Flash的数据。

1:Flash CS4工具打开

按如下 属性 制作界面

2:按 F9  ,输入以下代码:

//提交按钮 来广播一个 事件给Flex
subBtn.addEventListener(MouseEvent.CLICK,sendToFlexHandler);

var resultFlash:
int=10;

function sendToFlexHandler(evt:MouseEvent):
void
{
 
//广播了  FlashSended 事件
 dispatchEvent(new Event("FlashSended"));
}
//用于给flex 传值的 接口 
function getResult():
int
{
 
return resultFlash;
}

3:测试 发布

下面来讲讲Flex的调用Flash并通讯

代码
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
    
<mx:Script>
        
<![CDATA[

            import flash.events.Event;
            
private function init():void
            {
                                  
//是 swfLoader的content属性来侦听 Flash内容的 事件
                sl.content.addEventListener("FlashSended",FlashSendedHandler);
            }
            
private function FlashSendedHandler(evt:Event):void
            {
                                  
//Flex 已经侦听到了 Flash发送的FlashSended事件
                trace("I reiceived!");
                                   
//Flex控制了flash内容里的 receiveTxt 文本内容
                evt.target.receiveTxt.text="ok ,I received Flex data";
                                   
//Flex调用flash里的getResult方法
                var a=evt.target.getResult();
                trace(a
+"------------");

            }
            
private function initFlashTxt(evt:Event):void
            {
                                   
//打开swf时 便给swf赋值传参
                evt.target.content.initTxt.text="flex init value";

            }

        ]]
>
    
</mx:Script>
    
<mx:SWFLoader x="178" y="33" width="354" height="226" id="sl" source="FlashToFlex.swf" scaleContent="false" complete="initFlashTxt(event)"/>
</mx:Application>
原文地址:https://www.cnblogs.com/naiking/p/1728131.html