返回首页

Flash AS3教程—Flash中的鼠标事件

时间:2014-11-30 19:50来源:知行网www.zhixing123.cn 编辑:麦田守望者

下面列出as3中常用的部分事件。以下所涉及的对象,如果没有特别说明,则为响应事件的对象(也就是监听事件的对象)

事件名 含义
MouseEvent.CLICK 单击对象时发生
MouseEvent.MOUSE_DOWN 按下鼠标键时发生
MouseEvent.MOUSE_UP 放开鼠标键时发生
MouseEvent.MOUSE_MOVE 移动鼠标时发生
MouseEvent.DOUBLE_CLICK 双击鼠标时发生,要触发这一事件,需要把doubleClickEnabled属性设为True
如果其内部还有子对象,那么必须同时把对象的mouseChildren属性设为False
MouseEvent.MOUSE_MOVE 鼠标进入时发生
MouseEvent.MOUSE_OUT 鼠标移出时发生
MouseEvent.MOUSE_OVER 鼠标移过时发生

  先制作一个矩形对象备用:

package com.blog.tjlaoji{ import flash.display.Sprite ; public class clsRect extends Sprite{ public function clsRect(){ graphics.lineStyle(1,0); graphics.beginFill(0x999999); graphics.drawRect(0,0,200,100); graphics.endFill(); } }}

  下面介绍如何得到鼠标指针的坐标(注意,本例的输出信息只能在调试时看到):

属性 相对于哪个对象 应用于
localX localY 相对于响应事件的对象 MouseEvent对象(前例中f函数的参数e)
stageX stageY 相对于舞台 MouseEvent对象
mouseX mouseY 相对于对象 任意可视对象(是可视对象的一个属性)
 

package{ import flash.display.Sprite ;
import com.blog.tjlaoji.clsRect;
import flash.events.MouseEvent ;
public class ex5_1 extends Sprite{
private var r:clsRect;
public function ex5_1(){
r=new clsRect();
r.x=50;r.y=50;stage.addChild(r);
r.addEventListener(MouseEvent.CLICK ,f);
}
private function f(e:MouseEvent ){
trace(e.localX,e.localY);trace(e.stageX,e.stageY);
trace(r.mouseX,e.mouseY);trace(stage.mouseX,stage.mouseY);
}
}}

  下面演示拖动效果,仍然使用前面的矩形对象:

package{
import flash.display.Sprite ;
import com.blog.tjlaoji.clsRect;
import flash.events.MouseEvent ;
public class ex5_2 extends Sprite{
private var r:clsRect;
public function ex5_2(){
r=new clsRect();
r.x=50;r.y=50;stage.addChild(r);
r.addEventListener(MouseEvent.MOUSE_DOWN ,f_down);
r.addEventListener(MouseEvent.MOUSE_UP ,f_up);
}
private function f_down(e:MouseEvent ){
e.target.startDrag(false);
}
private function f_up(e:MouseEvent ){
e.target.stopDrag();
}
}
}

------分隔线----------------------------
标签(Tag):FLASH FLASH实例教程 flash技巧 flash源代码 flash基础教程
------分隔线----------------------------
推荐内容
猜你感兴趣