flash builder增加flash设计效果

其实就是Flex将Flash以资源的形式加载到Flex项目中,然后再获取该资源的内容对象,这样就可以操作该资源中对象的帧代码和文档类代码的公共方法了。
同时Flex也可以接收Flash发出的事件,从而实现相互通信的数据交互。

1、首先使用flash cs3建一个as 3的flash文件,建二帧,在第一帧用文本工具写上Hello World,并在第一帧上写上如下代码:

HelloWorld!

As代码   收藏代码
  1. stop();  
  2. function gonext():void  
  3. {  
  4. gotoAndPlay(2);  
  5. }//定义一个gonext的函数,作用为跳到第二帧;  


2、在第二帧上用文本工具写上:

“我是大将军”的文本

再制作一个调用flex函数是按钮button,命名为ozbutton,

然后写下如下代码:
As代码   收藏代码
  1. stop();  
  2. ozbutton.addEventListener(MouseEvent.CLICK,OzClick);  
  3. function OzClick(evt:MouseEvent):void  
  4. {  
  5. dispatchEvent(new Event("OKTWO"));  
  6. }//为ozbutton添加一个监听鼠标点击的事件,当鼠标点击时,发送一个OKTWO的广播事件  


3、这样flash的制做就完成了,命名为flash;


flash [olor=orange]下面说下在flex里如何调用[/color]


4、首先建一个名为flex_flash的flex工程,用一个image的组件来加载刚制做的flash文件;

Xml代码   收藏代码
  1. <mx:Image x="111" y="88" source="flash/flash.swf" complete="FlashComplete(event)" id="flashContent"/>  


5、当flash加载完成之后会触发complete事件,并调用FlashComplete(event)函数;
As代码   收藏代码
  1. private function FlashComplete(event:Event):void  
  2.   {  
  3.    flashMc=flashContent.content as MovieClip;   
  4.    flashMc.addEventListener("OKTWO",SayHello);   
  5.     
  6.   }  


6、flashMc是一个MovieClip类,并把flashContent.content赋值给它,这样flashMc就相当于你刚制做的flash,你可以使用它来调用里面的函数;完整的代码如下
As代码   收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init()">  
  3. <mx:Script>  
  4. <![CDATA[  
  5.    import mx.controls.Button;  
  6.    import mx.controls.Alert;  
  7.    private var flashMc:MovieClip  
  8.    private function FlashComplete(event:Event):void  
  9.    {  
  10.     flashMc=flashContent.content as MovieClip;   
  11.     flashMc.addEventListener("OKTWO",SayHello);   
  12.      
  13.    }  
  14.     private function NextFrame():void  
  15.    {  
  16.     flashMc.gonext();  
  17.      
  18.    }  
  19.   
  20.    private function SayHello(event:Event):void  
  21.    {  
  22.     Alert.show("HELLO World");  
  23.    }  
  24. ]]>  
  25. </mx:Script>  
  26. <mx:Image x="111" y="88" source="flash/flash.swf" complete="FlashComplete(event)" id="flashContent"/>  
  27. <mx:Button x="182" y="222" label="NextFrame" click="NextFrame()" id="b"/></mx:Application>



Flex与Flash的交互(深层对象交互示例)

(2011-07-10 15:47:12)
标签:

it

分类:转载

1、主程序文件TestFlex_Flash.mxml源代码: 
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()"/>
   <!--TestComponent标签表示将引入*(同一)目录下的TestComponent.mxml组件--> 
   <local:TestComponentid="component">
   </local:TestComponent>
</mx:Application>

2、TestComponent.mxml源代码
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>   
<!--下面注释掉的代码就是加载Flash制作的swf的,加载完成后,Flex就可以用swfgame这个对象的content属性表示调用该Flash程序的代码了-->   
<!--  <mx:SWFLoader id="swfgame" source="test.swf" x="174"y="75" width="61"creationComplete="loadSwf()"/>-->
    <local:VisualView id="view"/>
</mx:Canvas>

3、非可视组件VisualView.as源代码
package
{
    importmx.core.IMXMLObject;
    importmx.controls.Alert;
    public classVisualView 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 functionVisualView()
{
}

public functiontestView():void{
Alert.show("调用无视图方法。");
}

Public functioninvokeFlashMethod():void{
  Object(View.parentApplication.swfgame.content).
   myC.innerFunction();
}
   
}


Flash端程序

1、帧里(或者文档类)代码如下

Java代码 
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();
    
//下面这个方法测试调用Flex程序代码的效果,通过下面的四个调用也可以看出Flex代码中各组件的从属关系   
function toFlex(eve:TimerEvent){
flexApp.testf();                   //flash直接调用flex加载该游戏作用域内方法   
flexApp.component.testf();      //flash调用flex子组件方法
flexApp.component.view.testView();  //flash调用flex非可视组件组件中方法

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

2、Flash自定义类MyClass类源代码

   作用是为表明Flex可以调用Flash中对外公开的类的公开方法(只要是公开的类,就可以一级一级调用下去)

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值