`
lisc
  • 浏览: 1282 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

理解as3中的自定义事件

 
阅读更多
你可以这样理解事件类:
1.第一步,首先忘记你学到的任何关于事件类的知识,不知道有这么一回事,然后只知道FLASH有个内置类,名叫EVENT
2.第二步,来看这个类有什么——它有很多很多常数属性,比如COMPLETE,CLOSE,CLEAR等等。那么,这些参数干什么用的呢?很明确的告诉你,flash已经用掉了,用来标记一些flash已经设计好的事件——完成某件事、关闭某个东西、清除某个东西。
3.第三步,来看这个类能干什么——这些已经被标记好的事件,通常在一些常用内置类里面已经被注册好了。比如,loader类用COMPLETE表示完成了读取。当你想用到这个事件时,只需要在用的地方把这个事件调出来就行了——怎么调呢?addEventListener(事件的标记,触发标记后要做的事情)。
4.第四步,flash提供的这些事件不够我用怎么办?好办,自己来做一个事件呗!——怎么做?那你首先得让flash知道你这是个事件吧——事件的标记方法是内置事件类已经做好了,至于怎么实现那就不是你操心的事了,反正继承了event就是一个事件,这就对了。所以,你需要做的第一件事就是先把flash强大的event给继承出来。假设这个事件叫Cevent!
public class Cevent extends Event
{
    public function Cevent(type:String):void
   {
    super(type);
   }
}

5.第五步,继承出来以后怎么办?“flash怎么做的,我就怎么做呗!”是的,那边的小朋友很聪明,flash是怎么做的?对了,先添加一个标记。与flash一样,你在这个继承的类里声明了一个常数,为了遵从伟大的程序员们的传统,他们说常数最好用大写,你也就用了大写,假设是“MYGOD”。但同时,为了尊从伟大的flash的传统,我给了这个常数一个字符串的值-“mygod”(其实,如果你不尊重传统也无所谓,标记是什么?标记跟你的名字一样,就是让别人认得你而已,你说你叫“123456”,那么我说“123456”的时候就是指你)
于是,一个事件的标记就出来了:
public static const MYGOD:String="mygod";
6.第六步,事件就这样定义行了吗?当然还不行!你的确声称你有个“MYGOD”事件,但关键是这个事件究竟是谁弄出来的?怎么弄的?天知道你知道...但是flash不知道。所以,你就得告诉flash,这个事件是哪个无聊的类整出来的,是怎么整出来的。假设某个无聊类叫god,god弄出了这个MYGOD事件,god是事情的元凶,因此你就必须指定这个元凶。而所有的事件元凶都一个妈生的,这个妈叫“EventDispatcher”类,也是flash里一个内置类。现在简单了吧~咱们继续继承。
public class god extends EventDispatcher
7.第七步,指定了元凶还是不行,他不肯承认他的罪行,因为你没说他在什么地方搞出了这个事件。所以,我得给他一个函数,在这个函数中把这个事件点名出来。这样它才是名副其实的事件发送者。假设,god有个godispig函数,是专门搞这个事的函数,那么就这么来指证它。
public function godispig():void
{
dispatchEvent(new Cevent(Cevent.MYGOD))
}

这段代码的意思就是,一旦你做godispig这件事(就是调用这个方法),你就触发了MYGOD事件!
8,第八步,还没完???!是的,当然还没玩,上面这个god类仅仅是有了犯事的可能,但不能因为人家有可能出轨,我就说它出轨了吧。所以,正真触发这件事的不是这个类本身,而是你在其他地方引用这个类,并调用这个函数时才会出事。那么,用什么方法呢?哈~那个小朋友又举手了,好~你说!“flash怎么做的,我就怎么做呗!”哇!小朋友,你真是个天才啊!!!没错,用我们的老朋友addEventListener(事件的标记,触发标记后要做的事情)。具体点就是addEventListener(Cevent.MYGOD,触发标记后要做的事情)。当我在某个类中实例化了god类,那么这个实例一旦调用godispig这个函数,怎么样?!他就犯事了!!!!犯事要干嘛?要执行“触发标记后要做的事情”。此时,你要杀要砍要奸要抢就随你便了,全部到那个触发的事情里面去做吧。——这就是事件,而且是标准的自定义事件...至于,你还要给这个事件填油加醋什么的,也好办,到你的自定义类里面再写几个变量,比如info什么的,
public function Cevent(type:String,inf:String=""):void
  {
   super(type);
   info=inf;
  }

这样,当你注册事件触发函数时,就可以用dispatchEvent(new Cevent(Cevent.MYGOD,参数))里的这个参数再传点什么八卦的信息出来,而一旦进入“触发标记后要做的事情”中那个函数时,就可以用事件对象参数(假设为e:cevent)e来得到这个小道消息了。
分享到:
评论

相关推荐

    as3自定义组件

    在AS3中,我们可以利用DisplayObject类及其子类(如Sprite和MovieClip)来创建自定义组件。组件通常包括视觉表现和行为两部分,通过将这两者结合,我们可以创建出既有美观外观又能响应用户交互的组件。 创建自定义...

    ActionScript的自定义组件及自定义事件例子

    你可以通过查看和运行这些代码,更深入地理解ActionScript中自定义组件和自定义事件的工作原理。 ActionScript与Flex结合使用时,Flex框架提供了一个强大的MXML标记语言,可以简化UI组件的声明和事件处理。自定义...

    as3 自定义类

    下面将详细探讨如何在AS3中自定义一个按钮类。 首先,我们来看一下描述:“自定义按钮类,下载后,直接传参数调用就OK”。这意味着这个自定义按钮类已经封装好了所有必要的功能,用户只需下载并传入适当的参数,就...

    Flex4视频教程_02-03用AS自定义事件.rar

    本视频教程聚焦于Flex4中ActionScript(AS)的自定义事件使用,这在开发过程中非常重要,因为它允许开发者扩展和定制应用程序的通信机制。 自定义事件是Flex编程中的一个关键概念,它允许开发人员创建具有特定业务...

    as3 纯代码按钮实现函数,参数自定义

    在AS3(ActionScript 3)中,创建和操作用户界面元素,如按钮,是常见的任务。本示例关注的是如何使用纯代码方式创建一个具有自定义参数的按钮。...这个过程对于理解AS3中的UI构建和事件处理至关重要。

    as3自定义的键盘

    在AS3中创建自定义键盘,我们需要理解以下几个核心概念: 1. **事件监听与处理**:在AS3中,事件监听是通过`addEventListener`方法实现的。在自定义键盘中,我们可能需要监听鼠标点击或触摸屏触碰事件,当用户与...

    as3滚动条制作

    AS3中的Event类提供了鼠标事件,如MOUSE_DOWN、MOUSE_UP和MOUSE_MOVE。为了实现滚动条功能,我们需要监听这些事件,以便当用户与滑块交互时更新内容的位置。 3. **计算逻辑**: 当用户点击滑块或轨道时,我们需要...

    自定义as3缩放工具类实例

    在这个“自定义AS3缩放工具类实例”中,我们主要关注如何在AS3中实现对象的动态缩放功能。这个实例可能包含一个自定义的类,该类提供了一种方法来方便地调整舞台上元素的大小,这对于制作动画、游戏或任何需要用户...

    as3 datagrid flash 自定义检索程序

    在AS3中,可以监听鼠标事件,当用户点击带有超链接的单元格时,触发相应的URL跳转。这通常需要创建一个自定义的CellRenderer,覆盖默认的行为,以实现链接的动态渲染和处理。 总的来说,"AS3 Datagrid Flash 自定义...

    as3.0自定义ColorPicker

    开发者可以通过阅读和理解代码,学习如何在AS3中创建自定义组件,以及如何处理颜色选择相关的逻辑。此外,还可以根据自己的需求对代码进行修改和扩展,例如增加Alpha通道支持,或者添加更多预设颜色。 总的来说,...

    as3 自定义鼠标形状

    AS3中的BitmapData类允许我们处理像素级别的图像数据。为了自定义鼠标形状,我们需要从库中提取图片并转换为BitmapData对象。这可以通过`new BitmapData()`构造函数完成,传入图片的宽度和高度作为参数。 5. **...

    AS练习自定义包或类及引用

    在Android Studio(简称AS)开发中,自定义类和包是提升代码组织性和复用性的关键步骤。本练习旨在帮助开发者掌握如何在项目中创建、使用自定义类和包,以及如何正确引用它们。让我们详细探讨这个主题。 首先,...

    自定义控件源码下载view.as.zip

    3. **事件处理**:自定义控件可能需要处理触摸事件或其他交互事件,可以通过重写`onTouchEvent()`等方法来实现。 4. **属性动画与动画库**:在自定义控件中,为了增加动态效果,可以使用属性动画API或动画库(如...

    AS3中的EVENT

    在ActionScript 3 (AS3)中,EVENT是事件处理的核心概念,它是Flash Player和Adobe AIR应用程序中的一个重要组成部分。事件模型允许对象之间进行通信,...通过查看和分析这些文件,你可以更深入地理解AS3中的事件处理。

    为C#自定义控件添加自定义事件

    本文将详细介绍如何为C#自定义控件添加自定义事件,以便将事件响应代码推迟到使用这些控件的主窗体中编写,提高代码的可维护性和可重用性。 首先,我们来理解自定义控件的基本概念。自定义控件通常由一个或多个基础...

    as3.0自定义文本框的提示组件

    通过阅读和理解这个文件,你可以看到这些概念是如何实际应用的,从而学习如何在AS3中创建自定义组件并实现特定的功能。这个过程不仅可以加深对AS3事件处理、数据绑定和组件设计的理解,还能提升你在实际项目中的开发...

    Flash AS3 中文帮助文档

    1. **基础类型**:AS3中有基本的数据类型,如Number(包括整数和浮点数)、String、Boolean、null和undefined,以及Object和Array。其中,Number类型比AS2更加严格,不再自动转换数字字符串。 2. **面向对象编程**...

    flash as3 的例子

    在IT行业中,ActionScript 3(AS3)是Adobe Flash平台上的主要编程语言,用于创建交互式内容、动画以及富...通过对这些例子进行学习和实践,开发者可以更好地理解和掌握AS3中的事件机制,从而提升在Flash开发中的能力。

    flex 事件与自定义事件

    如何接收事件?如何做到AS3.0的标准事件编程? 类似JAVA的监听或观察者模式 Event改变的部分很多,正在想怎样用一个有条理的方式来讲解Event和它相关的诸多内容,让我们感到比较容易理解,记忆和接受。

Global site tag (gtag.js) - Google Analytics