Chinaunix首页 | 论坛 | 博客
  • 博客访问: 369616
  • 博文数量: 100
  • 博客积分: 2586
  • 博客等级: 少校
  • 技术积分: 829
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-09 15:20
个人简介

我是一个Java爱好者

文章分类

全部博文(100)

文章存档

2014年(2)

2013年(7)

2012年(2)

2010年(44)

2009年(28)

2008年(17)

我的朋友

分类:

2010-05-25 10:12:32

Flex端程序

源代码TestFlex_Flash.mxml

xmlns:mx="" layout="absolute" xmlns:local="*">

   

   

        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("调用父方法......");;

        }

    ]]>

   

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

      id="component">

      

   

 

源代码TestComponent.mxml

xmlns:mx="" width="400" height="300" xmlns:local="*">

   

   

        import mx.controls.Alert;

        

            public function testf():void{

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

           trace("ljlo");

        }

    ]]>

   

     id="view" />

 

 

源代码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")

                   }

         }

}

阅读(1234) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~