flex与flash交互详解

总的来说,Flex与flash的交互主要分成三种:

1、flash发送事件,flex接收事件;

2、flex调用flash的方法。

3、flash调用flex方法

 

 

在这里主要讲前两种,总的来说,这两种交互并没有特殊的难的地方,下面分别给出两个简单的例子

一、flash发送事件,flex接收

(1)首先打开flash cs,这里我用的是flash cs 4,直接拖拽一个简单的按钮,其命名为ozbutton,在主时间轴上添加动作,其代码如下

stop();
ozbutton.addEventListener(MouseEvent.CLICK,OzClick);
function OzClick(evt:MouseEvent):void
{
    trace("test button");
    dispatchEvent(new Event("test"));
}

image

代码很简单,就是发出一个事件,事件的名称叫做test

(2)Flex中接收事件,并做出响应运作,这部分也是算比较 简单,我直接贴代码。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
    <![CDATA[
        private function FlashComplete(event:Event):void
   {
    var flashMc:MovieClip = flashContent.content as MovieClip;
    flashMc.addEventListener("test",SayHello);
   }
    private function SayHello(event:Event):void
   {
    mx.controls.Alert.show("HELLO 小能");
   }
    ]]>
</mx:Script>
    <mx:Image x="200" y="200" id="flashContent"  source="cn/com/egova/umgis/flex/image/flash/eye.swf" complete="FlashComplete(event)" />
</mx:Application>

简单的来分析一下,用image装载一个swf,当装载结束后,获取其内容,其内容为一个电影剪辑,并添加一个监听即可。

但是实际过程中,仍然要注意的是:

1、分发事件应该是在主时间轴,否则会产生监听不到的情况,如果不在主时间轴上,那么其事件应该将冒泡设置为true,如 new Event(“test”,true) ;

2、如果需要在Flash内部分发事件中带有参数的话,那么必须采用自定义事件,那么应该采用如下的方法:

因为在flash as中,如果采用自定义事件,必须在外部自定义As文件,如下所示(clipEvent .as):

package {
    import flash.events.Event;
    public class clipEvent extends Event {
        public static const CLIP_CLICK:String="clip_click";
        private var _mm:String;
        public function clipEvent() {
            super(CLIP_CLICK,true);
        }
        public function get M() {
            return _mm;
        }
        public function set M(a:String) {
            _mm=a;
        }
    }
}

as文件的位置可以用include方式(as 2.0)来进行引用,其格式如下:

//上一级
include "../1a.as"
//子级
include "文件夹名/1a.as"

但是同级的情况下不要用:

/*同级
include "1a.as"

否则会报1037:包不能嵌套的错误。

在as 3.0下,应该采用import 方式,而不再用include。import 使用方式:

import  flashevent.*;

 

定义完自定义事件之后,便可以直接调用 ,下面为调用上面自定义事件的代码:

var p:clipEvent=new clipEvent()
        var r:Number = 25;
        p.M = r.toString();
        trace(p.M);
        dispatchEvent(p);

在flex端接收上述事件的代码如下:

private function SayHello(event:Event):void {
                if(flashMc!=null){
                    var obj:Object = Object(event);                       
                    var angle:Number = Number(obj.data);
                    trace("flash:"+angle.toString());
                }
            }

二、 flex调用flash的方法

这个比较简单,在flash中直接编写函数,直接调用即可,同样,也必须在主时间轴上,否则会产生调用不到的情况。

转载于:https://www.cnblogs.com/chinazhousheng/archive/2010/07/12/1775885.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值