菜鸟踏上AS3之路——(on)事件不见了




菜鸟踏上AS3之路——(on)事件不见了


学习体会:
在AS2时代,监听感觉很简单,可以在按钮、影片剪辑等上边用下on或onClipEvent事件,当然也包括侦听事件类型,一切都能搞定,比如在按钮上定义:

on (release) {

       gotoAndPlay(10);

}

或者:

按钮.onPress = function(){

gotoAndPlay(10);

}

太容易懂了,多怀念那个时代啊。呵呵,进入到AS3时代,一切都变了,论坛上都在问:我就想单击一下插入按钮让动画播放来着,怎么不顶用了?

这是因为在sS3中把事件监听全都统一成这样了:

function 函数名称(event:MouseEvent):void {

                     gotoAndPlay(10);

                     }

                     按钮.addEventListener(MouseEvent.CLICK, 函数名称);



首先,它定义一个函数,这是指定为响应事件而执行的动作的方法。接下来,调用按钮的 addEventListener() 方法,实际上就是为指定的按钮事件注册了这个函数,以便当该按钮单击(MouseEvent.CLICK,当然还有其他动作)时,执行这个函数的动作,即跳转到第10帧进行播放了。



这儿的MouseEvent.CLICK可以换成以下我们曾经熟悉的东东:

MouseEvent.CLICK(单击)、MouseEvent.DOUBLE_CLICK(双击)、MouseEvent.MOUSE_DOWN(按下)、MouseEvent.MOUSE_MOV E(移动)、MouseEvent.MOUSE_OUT(进入)、MouseEvent.MOUSE_OVER(离开)、MouseEvent.MOUSE_UP、MouseEvent.MOUSE_WHEEL(滚动)、MouseEvent.ROLL_OUT 和 MouseEvent.ROLL_OVER。



试试它们的体验吧:

写一个文档类,类名叫MouseEvents

打开这个文档类,写下如下语句:



package {

import flash.display.Sprite;

import flash.events.MouseEvent;

public class MouseEvents extends Sprite {

  public function MouseEvents() {

    init();

  }

  private function init():void {

     sprite.addEventListener(MouseEvent.CLICK, onMouseEvent);

     sprite.addEventListener(MouseEvent.DOUBLE_CLICK,onMouseEvent);

     sprite.addEventListener(MouseEvent.MOUSE_DOWN,onMouseEvent);

     sprite.addEventListener(MouseEvent.MOUSE_MOVE,onMouseEvent);

     sprite.addEventListener(MouseEvent.MOUSE_OUT,onMouseEvent);

     sprite.addEventListener(MouseEvent.MOUSE_OVER,onMouseEvent);

     sprite.addEventListener(MouseEvent.MOUSE_UP,onMouseEvent);

     sprite.addEventListener(MouseEvent.MOUSE_WHEEL,onMouseEvent);

     sprite.addEventListener(MouseEvent.ROLL_OUT,onMouseEvent);

     sprite.addEventListener(MouseEvent.ROLL_OVER,onMouseEvent);

   }

   public function onMouseEvent(event:MouseEvent):void {

     trace(event.type);

   }

  }

}

做个练习:
一测试就知道你用了什么事件了,别忘记了测试滚动啊,完工。

Flash动画

问题:双击事件怎么调整都不显示,请教各位老师。
很不错,浅显易懂!

康老如是说:
关于鼠标事件,在AS2时代,仅仅采用的是onRelease()等回调函数,从严格意义上说,没有真正的“单击”,更谈不上“双击”了!

AS3中,将所有的鼠标事件纳入了“事件处理”范畴。

高版这个练习包含了全部的鼠标动作,很不错的,但是作为“双击”,缺省状态下是禁用的!

设置如下试试:

对象.doubleClickEnabled=true



[本日志由 高原红 于 2008-10-31 03:15 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.