`
hje
  • 浏览: 288041 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

flex flash 相互调用

阅读更多
flex 调用flash:
private function onMapClick(evt:Event):void
{
  //tc获取flash的application文件,即主文档。
  var tc:MovieClip=evt.currentTarget.content  as MovieClip;
}



flash 调用flex。先把flex对象传入flash。
public function loadSwf():void{//flex,加载完相应的方法
           //传入此flex对象
            Object(swfgame.content).setApp(this);
        }

var flexApp:Object;
function setApp(ap:Object):void {//flash中传入flex对象
         this.flexApp=ap;
}





                 Flex与flash交互程序

Flex端程序

源代码TestFlex_Flash.mxml

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*">

    <mx:Script>

    <![CDATA[

        import flash.profiler.showRedrawRegions;

        import mx.controls.Alert;

        import flash.utils.Timer;

        import flash.events.TimerEvent;

       

        public function testf():void{

           Alert.show("已经调用");

           trace("ljlo");

          

              var time:Timer=new Timer(1000,1);

              time.start();

      time.addEventListener(TimerEvent.TIMER_COMPLETE,invokeFlash);            

        }

       

        public function loadSwf():void{

           //传入此flex对象

            Object(swfgame.content).setApp(this);

//             Object(swfgame.content).toFlex();

           

        }

       

        public function invokeFlash(inovevent:TimerEvent):void{

             //调用flash组件实例类对象的方法(myC为在flash帧中定义)

            Object(swfgame.content).myC.innerFunction();

        }

       

        public function parentMethod():void{

            Alert.show("调用父方法......");;

        }

    ]]>

    </mx:Script>

    <mx:SWFLoader id="swfgame" source="test.swf" x="174" y="75" width="330" height="200" creationComplete="loadSwf()"/>

    <local:TestComponent  id="component">

      

    </local:TestComponent>

</mx:Application>



源代码TestComponent.mxml

<?xml version="1.0" encoding="utf-8"?>

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300" xmlns:local="*">

    <mx:Script>

    <![CDATA[

        import mx.controls.Alert;

       

            public function testf():void{

           Alert.show("class组件已经调用了....");

           trace("ljlo");

        }

    ]]>

    </mx:Script>

<!--   <mx:SWFLoader id="swfgame" source="test.swf" x="174" y="75" width="61" creationComplete="loadSwf()"/>-->

     <local:VisualView id="view" />

</mx:Canvas>





源代码VisualView.as



package

{

    import mx.core.IMXMLObject;

    import mx.controls.Alert;



    public class VisualView implements IMXMLObject

    {

      protected var view : Object;

      protected var id : String;     

      public function initialized( document : Object, id : String ) : void

      {

         this.view = document;

         this.id = id;

        

      }    

     

      public function VisualView()

      {

          

      }

     

      public function testView():void{

        Alert.show("调用无视图方法。");

      }

      

      Public function invokeFlashMethod():void{

          Object(View.parentApplication.swfgame.content).

myC.innerFunction();

}    



    }

}





Flash端程序

Flash帧里代码如下

import flash.utils.Timer;

import flash.events.TimerEvent;



var flexApp:Object;

function setApp(ap:Object):void {

         this.flexApp=ap;

//      myC.passFlex(flexApp);

        

         var time:Timer=new Timer(1000,1);

         time.start();

         time.addEventListener(TimerEvent.TIMER_COMPLETE,toFlex);

}

var myC:MyClass=new MyClass();



function toFlex(eve:TimerEvent){

         flexApp.component.testf();       //flash调用flex子组件方法

         flexApp.component.view.testView();   //flash调用flex非可视组件组件中方法

    flexApp.testf();                    //flash直接调用flex加载该游戏作用域内方法

    flexApp.component.parentApplication.parentMethod();   //flash调用flex父组件方法

         myC.passFlex(flexApp);

}



MyClass类源代码

package {

        

         public class MyClass {

                   public var myObj:Object=null;

                   public function MyClass() {



                   }

                   public function passFlex(obj:Object) {

                            //obj.testf();

                            myObj=obj;

                   }

                   public function innerFunction(){

                            //myObj.component.testf();

                            trace("i am from the flash inner class")

                   }

         }

}

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lizhitao/archive/2008/11/27/3393713.aspx


分享到:
评论

相关推荐

    Flex与Flash相互调用

    Flex调用Flash函数的机制与Flash调用Flex类似,也是通过`ExternalInterface`。在Flash中,我们需要定义一个可被外部调用的函数: ```as3 public function flashFunction(message:String):void { trace("Flash收到...

    flex&flash相互调用

    标题中的“flex&flash相互调用”指的是在Adobe Flex和Flash这两个技术之间进行交互的方法。Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA),而Flash则是用于创建动画、图形和交互式...

    Flex与Flash相互调用实例

    本教程通过一个实际的调用实例,展示了Flex与Flash如何相互通信。 Flex是基于ActionScript 3.0的开源框架,主要用于构建富互联网应用程序(RIA)。它提供了MXML和ActionScript语言来创建用户界面,具有强大的组件库...

    flex—JS相互调用

    ### Flex与JS相互调用详解 #### 一、引言 在混合应用开发中,不同技术栈之间的相互调用是一个常见的需求。例如,在基于Flash的Flex应用中集成JavaScript功能,可以充分利用JavaScript的强大处理能力和Flex丰富的...

    Flex和JS的相互调用,传参

    标题中的"Flex和JS的相互调用,传参"指的是在Flex应用中调用JavaScript函数,或者在JavaScript中调用Flex组件的方法,并传递参数。这种互操作性是通过Adobe提供的`ExternalInterface`类实现的,它允许Flex和...

    flex与JS实现互相调用

    本篇将详细探讨“flex与JS实现互相调用”的相关知识点。 一、Flex与JavaScript的互操作性 Flex是Adobe开发的一个用于构建富互联网应用(RIA)的框架,基于ActionScript 3.0,提供了强大的图形和动画功能。...

    Flex(Flash)与.net交互教程

    它实现了Flex和.NET之间的消息传递协议,使得双方能够互相调用服务。 4. **Microsoft Visual Studio Team System 2008**:用于.NET开发的IDE,是创建ASP.NET应用程序的基础。 5. **Microsoft SQL Server 2000**:...

    Flex与Javascript相互调用例子(附源码)

    标题 "Flex与Javascript相互调用例子(附源码)" 指涉的是一个技术主题,主要探讨了如何在Adobe Flex应用程序中与JavaScript进行交互。Flex是基于ActionScript 3.0的开源框架,用于构建富互联网应用(RIA),而...

    Flex4.5 与js,ocx相互调用

    压缩包中的 "Flex-js-activex-相互调用自己做的实例" 文件很可能是包含了一个实际应用示例,展示了如何实现 Flex 4.5 与 JavaScript 和 OCX 控件的交互。这个实例可能包括一个 Flex 项目,其中定义了与 JS 交互的...

    flex与flash的交互

    通过设置`ExternalInterface`,Flex和Flash可以互相调用对方的方法,实现数据交换和功能集成。 3. **事件监听**:Flex和Flash都可以监听和触发事件,通过注册事件监听器,一个组件可以响应另一个组件的事件,从而...

    flex 与 flash 交互

    本篇文章将深入探讨Flex与Flash之间的交互,以及如何实现它们之间的相互调用。 Flex是一种基于MXML和ActionScript的开源框架,主要用于构建用户界面。它提供了一个强大的组件库,可以快速地创建复杂的、数据驱动的...

    Flex ActiveX通过JS相互调用.rar

    Flex ActiveX 通过JS相互调用是一个常见的技术实践,尤其在需要在Web环境中结合Adobe Flex(一种基于ActionScript的富互联网应用开发框架)与ActiveX控件(主要在Internet Explorer中运行的Windows平台专有技术)...

    Flex与Flash组合开发最佳实践__Combain Flex&Flash

    2. **使用Flash专业工具**:对于复杂的动画和图形设计,可以使用Flash Professional进行创作,然后导出SWF文件供Flex调用。这可以充分利用Flash的图形编辑功能,同时减少Flex代码的复杂性。 3. **组件集成**:通过...

    flex3.0+flash

    例如,你可能会在 "Chapter01" 中看到一些通用的函数或类,它们既能在 Flex 中使用,也能在 Flash 动画中调用。 4. **动画和效果**:Flash 的强项在于动画制作,Flex 应用程序可以通过导入和播放 Flash 动画来增强...

    Flash flex与JS通信

    描述中提到的"flex与Js 通信 相互调用"是指在Flex应用中可以调用JavaScript函数,同时JavaScript也可以调用Flex应用内的方法。这是一个双向的交互过程。例如,你可能需要在Flex应用中获取用户在HTML表单中的输入,...

    在MFC嵌入Flex并且相互通信

    在Flex端,我们可以注册ActionScript函数,使其能在JavaScript中调用,然后通过MFC调用JavaScript函数来实现通信。在MFC端,可以通过IE浏览器控件的接口调用JavaScript方法,从而传递数据和控制Flex应用的行为。 6....

    flex与js交互 关于ExternalInterface使用的小例子

    Flex与JavaScript的交互主要依赖于ExternalInterface,它使得ActionScript和JavaScript能够互相调用对方的函数,实现数据交换。这个过程涉及了函数注册、调用以及跨域和兼容性的处理。通过这样的交互,开发者可以...

    flex-java互相整合及其示例

    "testflex实例:java和flex相互通信"可能是实际的案例代码或步骤说明,展示了如何创建一个简单的Java-Flex应用。这个实例可能涵盖了创建Flex客户端组件,定义ActionScript接口以调用Java服务,以及在Java服务器端创建...

    flex与js交互2

    本文将详细介绍如何使用ExternalInterface接口实现Flex与JavaScript之间的相互调用,并给出具体的示例代码。 #### 二、Flex调用JavaScript方法 在Flex中调用JavaScript是一种常见的需求,这使得Flex能够利用网页中...

Global site tag (gtag.js) - Google Analytics