通过男女关系很生动的讲解了as3自定义事件的方法,希望对还不是了解自定义事件的童鞋有所帮助。
下面这个例子有四个类文件,一个是男孩类、一个是女孩类、一个是自定义事件类、一个是文档类。我们的目标是,男孩发出不同的事件,女孩做出不同的反映。
以下类文件和主文档放在同一目录下。
1、自定义事件类:
package {
import flash.events.Event;
//导入事件类
public class CustomEvent extends Event {
//声明自定义事件扩展自事件类成为其子类
public static const SENDFLOWER:String="sendFlower";
//声明静态常量作为事件类型1
public static const SENDCAR:String="sendCar";
//声明静态常量作为事件类型2
public var info:String;
//声明变量储存事件信息,这也是我们用自定义事件的主要原因,可以用他来
//携带额外的信息
public function CustomEvent(type:String,inf) {
super(type);
//调用父类构造函数并设置传入的参数作为事件类型
info=inf;
//将传入的参数2存入info
}
}
}
2、男孩类:
package {
import flash.events.EventDispatcher;
//导入事件发送者类
import flash.events.Event;
//导入事件类
public class Boy extends EventDispatcher {
//声明男孩类扩展自事件发送者类,成为其子类
public function sendFlower() {
//声明公开送花方法;
var info:String="玫瑰花";
//声明局部变量设置发送信息
var events=new CustomEvent(CustomEvent.SENDFLOWER,info);
//声明一个新的自定义事件类的实例,并设置类型为第一种、
//将发送信息存入事件
this.dispatchEvent(events);
//发送该事件
}
public function sendCar() {
//声明公开送车方法;
var info:String="百万跑车";
//声明局部变量设置发送信息
var events=new CustomEvent(CustomEvent.SENDCAR,info);
//声明一个新的自定义事件类的实例,并设置类型为第二种、
//将发送信息存入事件
this.dispatchEvent(events);
//发送该事件
}
}
}
3、女孩类:
package {
public class Girl {
public function replay(info):void {
trace(info);
}
//声明公开方法,做出反应
}
}
4、文档类:
package {
import flash.display.Sprite;
//导入Sprite类
public class Documents extends Sprite {
//声明文档类扩展自sprite类
private var _boy:Boy;
//声明私有属性为男孩类型
private var _girl:Girl;
//声明私有属性为女孩类型
public function Documents() {
//构造函数
_boy=new Boy;
//创建男孩实例
_girl=new Girl;
//创建女孩实例
_boy.addEventListener(CustomEvent.SENDFLOWER,_hand);
//为男孩增加类型为CustomEvent.SENDFLOWER的事件监听
_boy.addEventListener(CustomEvent.SENDCAR,_hand);
//为男孩增加类型为CustomEvent.SENDCAR的事件监听
_boy.sendCar();
//调用男孩的送车的方法。你可以再试着调用男孩的sendFlower
//方法试试,看结果有什么不同
}
private function _hand(E:CustomEvent):void {
//声明事件处理器
_girl.replay("我收到一位帅哥送我的:"+E.info);
//调用女孩的replay方法。
}
}
}
希望各位不懂自定义事件的朋友看了之后会有所启发,总之,事件发送没反应大部分原因是发送者和接受者不在一个反应区域内。基本上如果是自定义类要发送事件,那么监听者也是他自己。如果是显示对象发送自定义事件,可以让他自己监听也可以让他的父级显示容器监听,但如果是后者则必须将冒泡参数设为true,在本例中就是修改自定义事件类文件中的
super(type);
这一行为super(type,true);
分享到:
相关推荐
张志晨:as3语言,最为典型的自定义事件 模板,可以自己修改并扩充。
2. **编写AS3代码**:在ActionScript中实现组件的逻辑,这包括定义组件类,继承自基类(如UIComponent或SimpleButton),并添加事件处理程序、属性和方法。 3. **处理布局和尺寸**:自定义组件需要处理自身和子对象...
在ActionScript 3 (AS3)中,自定义类是一种扩展和定制标准库中已有类或者创建全新功能的方法。在给定的标题“as3 自定义类”中,重点是自定义一个按钮类,这通常是为了满足特定项目或游戏的需求,提供更灵活的设计和...
3. **派发事件**:在需要触发事件的地方,使用`dispatchEvent()`方法发送自定义事件。 4. **监听事件**:在接收方组件中,使用`addEventListener()`方法添加事件监听器,处理自定义事件。 在提供的“WinCCALLMine”...
在ActionScript 3(AS3)中,自定义弹出框是创建用户界面时非常常见的一种需求。通常,系统默认的弹出框可能无法满足所有设计和功能要求,因此开发者会选择自定义弹出框来提供更个性化的用户体验。标题"as3自定义弹...
本视频教程聚焦于Flex4中ActionScript(AS)的自定义事件使用,这在开发过程中非常重要,因为它允许开发者扩展和定制应用程序的通信机制。 自定义事件是Flex编程中的一个关键概念,它允许开发人员创建具有特定业务...
综上所述,创建AS3自定义键盘涉及了多个AS3的基础和高级特性,包括事件处理、图形绘制、对象实例化、文本操作、声音处理、布局设计、性能优化以及用户交互。通过熟练掌握这些知识点,你可以构建出功能丰富、用户体验...
总的来说,这个例子展示了AS3中如何通过自定义的 `SimpleButton` 类创建一个具有自定义属性的按钮,并将其添加到舞台上以及添加事件监听器来响应用户交互。这个过程对于理解AS3中的UI构建和事件处理至关重要。
在ActionScript 3 (AS3)中,自定义鼠标形状是一项常见的需求,特别是在创建互动性的网页游戏或多媒体应用中。这个主题主要涉及如何利用库(Library)中的图片资源来替换默认的鼠标光标,实现更加个性化和吸引用户的...
在Android Studio(简称AS)开发中,自定义类和包是提升代码组织性和复用性的关键步骤。本练习旨在帮助开发者掌握如何在项目中创建、使用自定义类和包,以及如何正确引用它们。让我们详细探讨这个主题。 首先,...
自定义下拉菜单的核心是利用AS3的显示对象层次结构和事件处理机制。首先,我们需要一个主容器,通常是一个MovieClip或Sprite,作为下拉菜单的基础。这个容器会包含一个隐藏的列表和一个触发器按钮。当用户点击按钮时...
本教程将深入探讨如何使用AS3来创建自定义滚动条。 首先,滚动条主要由两部分组成:水平滚动条和垂直滚动条。它们通常包含一个滑块,可以在轨道上移动,以反映内容的当前查看位置。在AS3中,我们可以使用MovieClip...
总的来说,自定义ColorPicker组件是AS3开发中一个实用且有趣的实践,它可以帮助我们提高应用的用户体验,同时也能锻炼我们的组件设计和事件处理能力。通过深入研究这个项目,不仅可以掌握AS3.0中的颜色处理技术,还...
### Flex自定义事件详解 Flex 是一款用于构建和部署跨平台桌面应用与移动应用的开源框架,它基于Adobe Flash Platform。在Flex应用开发过程中,事件处理机制是非常重要的一个环节,而自定义事件则是这一机制中的...
在JavaScript中实现自定义事件,我们可以借鉴ActionScript(AS)的一些概念,尽管JavaScript本身并不直接支持像AS那样的事件模型,但可以通过模拟来实现。 `BaseEvent.js`和`EventDispatcher.js`这两个文件很可能是...
SVG(Scalable Vector ...通过将jpg图片转换为SVG,我们可以轻松地添加自定义元素和事件监听,使得地图应用更加生动和功能丰富。在Android Studio中,结合SVG库和自定义View,我们可以实现这种高级功能,提升用户体验。
在这个“自定义AS3缩放工具类实例”中,我们主要关注如何在AS3中实现对象的动态缩放功能。这个实例可能包含一个自定义的类,该类提供了一种方法来方便地调整舞台上元素的大小,这对于制作动画、游戏或任何需要用户...
因为有的时候项目需要自定义的ComboBox,但是组件修改外观什么的都很不容易实现,特别是客户要很特别的外观样式或者效果的时候就没办法处理了,所以自己做了一个这样的东西,使用起来比较简单方便。显示的内容都是从...
"AS 工程自定义 APN 实现.rar"提供的就是一个Android Studio项目,旨在帮助开发者创建和管理自定义的APN连接。 首先,我们要了解如何在Android系统中自定义APN。这通常涉及以下几个步骤: 1. **编写代码**:在...
在ActionScript 3.0(AS3)中,开发自定义UI组件是常见的需求,以满足特定项目的交互和视觉设计。...这个过程不仅可以加深对AS3事件处理、数据绑定和组件设计的理解,还能提升你在实际项目中的开发能力。