`
it_liuyong
  • 浏览: 101955 次
  • 性别: 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之间通信

    另一种实现C#与SWF通信的方法是通过Socket编程。这种方法更加灵活,但实现起来相对复杂。 总之,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控制SWF播放

    如果SWF文件内部没有暴露必要的控制接口,我们可能需要通过反射或者其他方式与SWF进行通信。ActionScript 3的`flash.utils.getDefinitionByName()`函数可以帮助我们获取SWF内部的类或函数。 6. **Flex与Flash集成...

    flex 与 js 通信的小例子

    本篇文章将探讨一个关于“flex与js通信”的小例子,它主要涉及到Adobe Flex和JavaScript之间的交互,这对于创建富互联网应用程序(RIA)是非常重要的。Flex是一种用于构建富客户端应用的开源框架,基于ActionScript...

    Flex控制swf简单源码

    此外,为了确保安全性和性能,Flex和SWF之间的通信可能会受到沙箱限制。通常,加载的SWF文件会位于不同的安全域中,这可能会影响它们之间的交互。因此,你可能需要设置`LoaderContext`来允许跨域通信,或者在SWF头部...

    Flex控制外部引用SWF的播放进度源码

    总之,控制Flex中外部SWF的播放进度需要理解`Loader`类、事件监听、以及可能的跨域和通信策略。如果外部SWF提供了合适的API,那么控制将变得更加直接;否则,可能需要利用技巧和工作来模拟播放进度。通过深入研究和...

    flex+java 项目创建 和 例子

    综上所述,"flex+java 项目创建 和 例子"这个主题涵盖的内容广泛,包括技术栈的配置、项目结构的设计、前端与后端的通信、实际应用场景的示例,以及开发过程中的注意事项。对于想要学习或提升Flex与Java集成开发技能...

    flex与java通信的完整demo

    Flex与Java通信是Web开发中的一个重要技术组合,... 通过Flex与Java的结合,开发者可以创建功能强大的、具有实时通信功能的Web应用,提供流畅的用户体验。这个完整示例将帮助开发者深入理解这一技术,并快速上手实践。

    Flex技术入门之如何创建flex的web工程

    6. **部署**:将编译后的SWF文件集成到Web服务器,通过HTML页面嵌入SWF,或者使用Flex的HTTPService、WebService等方式与服务器通信。 总之,Flex作为一种强大的富客户端开发技术,拥有丰富的功能和良好的生态系统...

    JS与Flex通信、互转例子

    为了克服这个问题,开发者需要在Flex的SWF文件中添加相应的跨域策略文件,允许JavaScript与特定源的SWF进行通信。 在"JS与AS3"的压缩包中,可能包含了一个或多个示例项目,用于演示JS与Flex的互转通信。这些示例...

    flex加载as2写的swf,内容是一个很雷的网页游戏AD

    尽管Flex主要使用ActionScript 3(AS3),但有时出于兼容性或历史原因,我们仍需加载和交互与AS2编写的SWF。 1. Flex中的SWF加载机制: 在Flex中,我们可以使用`flash.display.Loader`类来加载SWF文件。这个类提供...

    Flex Module间通信

    在Flex中,一个模块是一个可以独立编译和加载的SWF文件,它可以在运行时动态插入到主应用程序中。模块化设计使开发者能够将应用拆分为更小、更专注的功能单元,每个单元都可以单独开发和测试。 要实现Flex模块间的...

    Flash flex与JS通信

    标题中的"Flash Flex与JS通信"指的是如何让运行在Adobe Flash Player中的Flex应用与浏览器中的JavaScript代码进行数据交换和功能调用。这种通信机制通常被称为External Interface或Bridge技术,它允许Flex应用与网页...

    flex与flash的交互

    1. **嵌入Flash内容到Flex项目**:Flex项目可以嵌入SWF格式的Flash内容,这允许开发者在Flex应用中利用已有的Flash资源。通过使用`mx.controls.MovieClip`或`mx.controls.VideoDisplay`组件,可以轻松地在Flex界面中...

    在MFC嵌入Flex并且相互通信

    这个过程涉及到多个步骤,包括创建Flex项目、构建MFC应用程序、集成Flex控件以及实现两者间的通信。 首先,我们需要了解MFC。MFC是微软提供的一套面向对象的类库,基于Windows API,用于简化Windows应用程序的开发...

    flex 整合java spring

    Spring还支持RESTful服务,这使得Flex客户端能够轻松地与Spring后端进行通信。 **整合过程** 1. **配置Spring**:首先,需要在Spring项目中配置HTTP服务,例如使用Spring Boot的嵌入式Tomcat服务器,或者配置独立的...

    html嵌入flex swf

    通过 Flex 的 ExternalInterface API,你可以实现 Flex 应用程序与 HTML 之间的通信。在 Flex 代码中,你需要启用 ExternalInterface 并定义公开的 JavaScript 可调用方法。在 HTML 中,可以通过 JavaScript 来调用...

    flex 与java后台整合 PPT

    在项目设置中,需要指定SWF(Flex编译出的可执行文件)与Java服务器的通信方式,如使用HTTP服务、 BlazeDS 或者LCDS(LiveCycle Data Services)。 2. **BlazeDS集成**: BlazeDS是Adobe提供的免费服务器端组件,...

    C#与flex交互

    标题中的"C#与Flex交互"指的是在开发过程中,使用C#作为后端处理逻辑,而Flex作为前端用户界面,两者之间进行数据和功能的通信。Flex是一种基于Adobe AIR和Flash Player运行时的开源框架,主要用于构建富互联网应用...

Global site tag (gtag.js) - Google Analytics