`
it_liuyong
  • 浏览: 97798 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex与Flex创建的swf通信

    博客分类:
  • flex
阅读更多
加载子SWF的Flex程序代码


<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
   
    <mx:Script>
        <![CDATA[
           
            import mx.managers.SystemManager;
            import mx.controls.Label;
           
            [Bindable]
            public var loadedSWF:SystemManager;
           
            private function initNestedAppProps():void {
                loadedSWF = SystemManager(myLoader.content);
            }
           
            public function updateLabel():void {
                lbl.text=loadedSWF.application["text_1"].text;
            }
           
            // Write to the Label control in the loaded application.
            public function updateNestedLabels():void {
                loadedSWF.application["text_2"].text = text_value.text;
            }
        ]]>
    </mx:Script>
   
    <mx:Label id="lbl" x="204" y="69" fontSize="12"/>
    <mx:SWFLoader id="myLoader" width="250" height="200"
                  source="subswf.swf"
                  creationComplete="initNestedAppProps();" x="13" y="124"/>
   
    <mx:Button label="获得加载SWF中的控制值"
               click="updateLabel();" fontSize="12" x="10" y="65"/>
    <mx:Button label="修改加载SWF中的控制值"
               click="updateNestedLabels();" fontSize="12" x="10" y="33"/>  
    <mx:TextInput id="text_value" x="192" y="35" fontSize="12"/>
   
</mx:Application>







子SWF程序代码


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Panel x="0" y="0" width="250" height="200" layout="absolute" title="加载的SWF文件" fontSize="12">
        <mx:TextInput id="text_1" x="10" y="41" fontSize="12" text="大家好,我是FLEX"/>
        <mx:TextInput id="text_2" x="10" y="88" fontSize="12"/>
    </mx:Panel>
</mx:Application>





如果需要调用子swf的方法,可以将loadSwf的application转换成Object,然后再调用子swf中的方法,否则会出现找不到方法的错误。

var loadSwf:SystemManager = SystemManager(myLoader.content);
(loadSwf.application as Object).test();



源码下载



#===============================================================================

后来在使用发现上面的代码还是有隐患的,如果被加载的swf文件比较大,可能出项_loadSwf中的application值为null的情况。
下面是我补充的一段代码。


补充代码
private var _loadSwf:SystemManager;
private var content:Image;
private function onLoadCompleted(event:Event):void
{
    _loadSwf = SystemManager(content.content);
    _loadSwf.addEventListener(FlexEvent.APPLICATION_COMPLETE,swfReady);


    function swfReady(event:FlexEvent):void
    {
        _loadSwf.removeEventListener(FlexEvent.APPLICATION_COMPLETE,swfReady);
        (_loadSwf.application as Object).test();
    }
}
分享到:
评论

相关推荐

    SWF之间通信、Flex与SWF之间通信

    SWF之间通信、Flex与SWF之间通信、C#与SWF之间通信

    Flex中SWF和SWF文件之间的通信案例

    Flex中SWF和其他SWF文件之间的通信原理。该案例中TestLocalConnection为主SWF文件加载了TestLocalConnectionReceiver.SWF,两者之间是在同一个域下的通信,工程代码编译路径需要下载者手动修改下。其他技术细节参见...

    Flex通讯系列---Flex与SWF(一)

    这里讲述的是在Flex Application中嵌套一个SWF,然后实现Flex与SWF相互间的通讯。我们需要引入SystemManager接口实现。 环境:Eclipse + Flex Builder

    FLEX从入门到精通.pdf

     6.3.1 创建一个Flex项目  6.3.2 使用设计模式  6.3.3 使用数据绑定  6.3.4 使用触发器和特效  6.3.5 编译应用程序  6.4 创建ActionScript应用程序  6.4.1 创建ActionScript项目  6.4.2 比较文件...

    SWF(ActionScript3.0)与JavaScipt(JS)通信示例

    今天花了一些时间整理出来了Swf 文件与JavaScript通信的示例,在此贴出供大家参考。 在ActionScript3.0与JavaScipt通信的时候需要用到ExternalInterface类。 “ExternalInterface”类是外部API,在ActionScript和...

    flex3的cookbook书籍完整版dpf(包含目录)

    第一章.Flex与ActionScript基础(3) 1.1节.用FlexBuilder创建Flex项目 1.2节.用FlexBuilder创建Flex库项目 1.3节.创建ActionScript项目 1.4节.在FlexBuilder中设置MXML编译器选项 1.5节.在FlexBuilder外部编译Flex...

    Flash_cs3、Flex与asp、php通信总结(包含数据库)

    看到flash和asp文件时面变量名就知道相互是怎么传送的呢,对于数据库的一些插入,更新,查询的操作,只要接收flash的数据,直接运行asp相关数据库操作命令就行了....在线观看地址:http://www.wolf2999.cn/php/test.swf

    ActionScript开发技术大全

    25.5.1创建测试的SWF 558 25.5.2跨脚本访问测试 562 25.5.3文本载入测试 563 25.6小结 564 第26章FlashPlayer与宿主程序 565 26.1使用外部接口ExternalInterface类 565 26.1.1ExternalInterface类 565 26.1.2...

    Flex与.NET互操作(十一):FluorineFx.Net的及时通信应用(Remote Procedure Call)(二)

    FluorineFx.NET提供了完善的RPC(Remote Procedure Call)功能,无论是通过Flash还是Flex开发的客户端应用(.swf)都可以非常简单方便的采用RPC的方式调用.NET的服务器端方法

    GWT to SWF Integration Kit-开源

    GWT2SWF 旨在提供 GWT 和 FLASH/FLEX 之间的软件桥梁。 这意味着使用 GWT2SWF 您将能够在 GWT 和 FLASH/FLEX 之间进行通信。 GWT2SWF 提供 SWFWidget 和 FlashPlayer 版本检测。

    大话PKG解包工具

    功能: 支持AS3的ByteArray序列化对象的AMF格式编码、解码( readObject...支持解压还原LZMA算法压缩过的SWF文件(文件头三字节为:ZWS的 *.SWF文件)。 为方便想了解AMF格式及封包的坛友分析解码AMF数据资料使用。

    AMF数据分析器_V22

    功能: 支持AS3的ByteArray序列化对象的AMF格式编码、解码( readObject...支持解压还原LZMA算法压缩过的SWF文件(文件头三字节为:ZWS的 *.SWF文件)。 为方便想了解AMF格式及封包的坛友分析解码AMF数据资料使用。

    ActionScript开发人员指南中文版

    第章:与其他FlashPlayer和AIR实例通信 关于LocalConnection类 在两个应用程序之间发送消息 连接到不同域中的内容和AIR应用程序 第章:与AIR中的本机进程通信 本机进程通信概述 启动和关闭本机进程 与本机进程通信 本...

    asp.net知识库

    与DotNet数据对象结合的自定义数据对象设计 (二) 数据集合与DataTable 与DotNet数据对象结合的自定义数据对象设计 (一) 数据对象与DataRow ASP.NET中大结果集的分页[翻译] .net 2.0 访问Oracle --与Sql Server的...

    vc代码合集

    2012-06-11 09:50 3,412,722 内部文件非内部程序员禁止访问谢谢1234567890123456789能够实现文件的多选,统一上传,从而实现文件的批量上传Flex多文件上传源码VS2005.rar 2012-06-11 10:08 1,481,225 几个C语言小...

Global site tag (gtag.js) - Google Analytics