`

as3自定义事件小例

    博客分类:
  • as3
 
阅读更多

1.编写自定义事件类(StageEvent.as)

package events
{
    import flash.events.EventDispatcher;
    import flash.events.Event;
    public class StageEvent extends EventDispatcher
    {
        public static var instance:StageEvent;
        public var behavior:String="";
        public var source:String="";
       
        public function StageEvent()
        {
        }
        public static function getInstance():StageEvent
        {
            if(instance==null)
            {
                instance = new StageEvent();
            }
            return instance;
        }
        public function doAction(source:String,behavior:String,type:String,bubbles:Boolean=false,cancleable:Boolean=false):void
        {
            this.source = source;
            this.behavior = behavior;
            dispatchEvent(new Event(type,bubbles,cancleable));
        }
    }
}

 

2.用法:

在时间轴第一帧写入以下代码:

import events.StageEvent;
import Test;
var stageEvent:StageEvent;
stageEvent = StageEvent.getInstance();
btn.addEventListener(MouseEvent.CLICK,onMouseEventClickHandler);
new Test();
function onMouseEventClickHandler(evt:MouseEvent):void
{
   
    stageEvent.doAction(Test.CLICK,"click",Test.EVENT_TYPE);  //鼠标点击按钮,派发事件给Test类,由Test类执 //行相应操作
}

 

3.Test类,接受事件(Test.as)

package
{
    import flash.events.Event;
    import events.StageEvent;
    public class Test
    {
        public static var EVENT_SOURCE = "event_source";
        public static var EVENT_TYPE = "event_type";
        public static var CLICK = "click";
        public static var OPEN = "open";
        var stageEvent:StageEvent;
       
        public function Test()
        {
           
            stageEvent = StageEvent.getInstance();
            stageEvent.addEventListener(EVENT_TYPE,onEventHandler);
        }
       
        function onEventHandler(evt:Event):void
        {
           
            switch(evt.currentTarget.source)
            {
                case CLICK:
                trace("click");
                break;
                case OPEN:
                trace("open");
                break;
            }
        }
    }
}

 

分享到:
评论

相关推荐

    【个人收集】as3实用小例

    `LRC类.txt`和`解析LRC文件的类及示例源代码.txt`可能包含了自定义的AS3类,用于读取和解析LRC文件,以便在Flash内容中同步显示歌词。这涉及字符串处理、正则表达式和时间戳的处理。 2. **本地文件操作**: `本地...

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

    3. 在控件内部,当需要触发事件时,检查事件是否已订阅,然后调用事件处理程序。 4. 在主窗体或其他订阅控件事件的地方,编写事件处理代码。 这样的做法提高了代码的模块化,使得自定义控件的功能更加灵活,易于...

    AS3.0游戏18例源码包

    AS3.0游戏18例源码包是一个针对初学者设计的资源集合,它涵盖了18款基于ActionScript 3.0(AS3.0)编程语言开发的简单小游戏。这个压缩包对于想要学习或提升AS3.0编程技能的人来说极具价值,因为它提供了可以直接...

    C#_自定义控件入门教程

    以创建一个名为`ColorHatch`的自定义控件为例,详细介绍如何编辑控件。 1. **命名控件**:在解决方案资源管理器中,将默认生成的`UserControl1`重命名为`ColorHatch`。 2. **布局设计**:打开`ColorHatch`设计器,...

    Flex4 自定义组件皮肤小结

    以压缩包中的`pureMVC_Simple`为例,PureMVC是一个轻量级的框架,它并不直接涉及Flex4的皮肤机制,但我们可以将其与Flex4的自定义组件皮肤结合起来,创建一个具有PureMVC风格的用户界面。例如,我们可以通过自定义...

    AS3+XML相册例子

    4. **Flash组件**:AS3+XML相册通常包含自定义的Flash组件,如图片网格或列表,用于展示和导航图片。`flashmo_180_photo_grid.fla`可能是一个包含这些组件的Flash源文件,而`.swf`文件是编译后的可执行Flash内容。 ...

    qml控件:自定义图标按钮

    在本例中,`MyIconButton`就是这样一个自定义组件。 3. **导入语句**: 在QML文件中,我们需要导入必要的模块,例如`QtQuick.Controls`,以便使用现有的按钮样式和行为。导入语句可能如下: ```qml import Qt...

    AS3经典范例之随机三点拖动.rar

    这个示例是Flash开发中的一个重要练习,它涉及到AS3的基础知识、对象交互、事件处理以及图形绘制等多个方面。让我们逐一解析这些知识点。 首先,AS3是Adobe Flex和Flash Professional等工具的主要编程语言,用于...

    Excel中自定义函数实例剖析

    Const rate3 As Double = 0.20 ' 20%税率 Dim tax As Double If salary tax = 0 ElseIf salary tax = (salary - 800) * rate1 ElseIf salary tax = 700 * rate1 + (salary - 1500) * rate2 Else tax ...

    AS3.0+xml通用图片滚动(含源码)

    3. **图片加载**: AS3.0中的`Loader`类用于加载图像和其他媒体资源。开发者可以通过创建`Loader`对象,设置其`load()`方法来加载XML文件中指定的图片URL,然后将加载完成的图片显示在舞台上。 4. **事件驱动编程**:...

    swift-iOS照片自定义裁剪自定义宽高比裁剪代码调用简单精炼.

    if let selectedImage = info[.originalImage] as? UIImage { // 这里获取到用户选择的图片 performCrop(image: selectedImage) } dismiss(animated: true, completion: nil) } func ...

    AS3写Flex皮肤问题代码

    本教程将深入探讨如何使用ActionScript 3(AS3)编写Flex皮肤,并以重写List组件为例进行讲解。 首先,理解Flex皮肤的基本概念是至关重要的。Flex皮肤由MXML或AS3编写,通常包含形状、图像、文本等元素,这些元素...

    flex 自定义加载进度框

    3. **事件监听**:监听加载进度事件,如`ProgressEvent.PROGRESS`和`Event.COMPLETE`,以便更新进度条的状态。 4. **Flex Component Life Cycle**:了解Flex组件的生命周期,知道何时在哪个阶段插入自定义预加载器...

    AS 3.0 经典雪花效果

    在本例中,"经典雪花效果"是一个使用AS 3.0实现的视觉特效,它模拟了冬季雪景中的飘落雪花,为观众带来一种身临其境的感觉。 在AS 3.0中,雪花效果通常涉及以下几个关键知识点: 1. **时间轴控制**:AS 3.0允许...

    ros中srv服务自定义string 发布

    总结一下,本例展示了如何在ROS中创建一个自定义的`srv`服务,用于传递字符串类型的状态标志。这涉及到`.srv`文件的编写、服务服务器和客户端的实现,以及使用`std_srvs`包中的基本`Trigger`服务类型作为参考。通过...

    flash AS3.0游戏

    《深入探索:Flash AS3.0游戏开发——以“太空战机36-赵来琴”为例》 在数字媒体和互动娱乐领域,Flash AS3.0作为一种强大的编程语言,为游戏开发者提供了丰富的工具和功能,使得游戏开发变得更加高效且具有表现力...

    用视图自定义PostgreSQL数据库查询

    在PostgreSQL数据库中,视图是一种非常强大的工具,它允许用户创建自定义的查询结果集,这些结果集可以像实际的表一样进行处理和查询。视图本质上是预定义的SQL查询,存储在数据库中,当需要时可以方便地重用,提高...

    自定义UITableVIew

    本教程将深入探讨如何自定义`UITableView`及其单元格(`UITableViewCell`),并以`TestTableCell`为例进行实战演示。 首先,自定义`UITableView`的核心在于自定义`UITableViewCell`。创建一个自定义单元格类,继承...

    自定义listview

    在本例中,Adapter会是关键,因为我们需要将联系人信息(如姓名、电话号码等)加载到ListView中。 1. **创建自定义Adapter**:首先,你需要创建一个继承自BaseAdapter的自定义Adapter。这个Adapter需要重写以下方法...

Global site tag (gtag.js) - Google Analytics