当前位置 :主页>RIA知识堂>As3.0编程>列表

在AS3.0中怎么样响应鼠标和键盘事件

时间:2008-03-31 来源:我爱RIA网  作者:一张纸条   点击:
    核心提示:对于鼠标事件,主程序不会直接接收,需要通过一个可视组件监听它(关于可视组件会在第 5 章讨论)

问题
我要处理鼠标或键盘事件

解决办法
监听和捕获处理鼠标和键盘事件

讨论
处理鼠标和键盘事件很类似于  enterFrame  事件,这些在  1.5 节已经讨论过,只是略有不同。对于 鼠标事件,主程序不会直接接收,需要通过一个可视组件监听它(关于可视组件会在第 5 章讨论)。 下面的例子创建一个 sprite,添加到可视组件列,然后在它上面画了个矩形:

package {
import flash.display.Sprite;
import flash.events.MouseEvent;


public class ExampleApplication extends Sprite {
private var _sprite:Sprite;


public function ExampleApplication(    ) {
_sprite = new Sprite(    );
addChild(_sprite);
_sprite.graphics.beginFill(0xffffff);
_sprite.graphics.drawRect(0, 0, 400, 400);
_sprite.graphics.endFill(    );


注意:鼠标事件名称被定义在  MouseEvent  类中,事件处理函数需要传递进一个  MouseEvent  类 实例,现在为 sprite 加入鼠标监听器:


_sprite.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
_sprite.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}


接着,定义两个处理函数 onMouseDown  和  onMouseUp:

onMouseDown  方法设置画线的类型,移动画刷到鼠标点击位置,然后添加了第三个鼠标监听器监听  MouseMove  事件;onMouseUp  方法用 removeEventListener  方法移除监听器,它和 addEventListener  方法具有相同语法结构,只是作用相反罢了。
最后,定义 onMouseMove  函数

private function onMouseDown(event:MouseEvent):void {
_sprite.graphics.lineStyle(1, 0, 1);
_sprite.graphics.moveTo(mouseX, mouseY);
_sprite.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
}


private function onMouseUp(event:MouseEvent):void
{
_sprite.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
}

 


private function onMouseMove(event:MouseEvent):void {
_sprite.graphics.lineTo(mouseX, mouseY);
}
}
}


这样就建立了一个事件驱动的绘画程序。
键盘事件的处理简单一些,只需要监听和响应键盘事件,接受这些事件的对象必须出于激活状态。 我们需要在主程序中加入这一行:

stage.focus = this;


下面的例子展示一个简单的类,它监听键盘的  keyDown  事件,输出按键的字符码,


package {
import flash.display.Sprite;
import flash.events.KeyboardEvent;


public class ExampleApplication extends Sprite {
public function ExampleApplication(    ) {
stage.focus = this;
addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
}


private function onKeyDown(event:KeyboardEvent):void {
trace("key down: " + event.charCode);
}
}
}

上一篇:详细讲解AS3.0中自定义应用程序属性     下一篇:AS3.0的Socket通讯发送固定字符串(指定编码)
版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。
转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。
特别注意:本站所提供的源文件,电子书,第三软件,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。
 评论内容:(最新评论共有 0) 位网友发表了评论不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码: 匿名? 马上注册
 
 
知识堂分类
RIA教程调查
RIA项目包
本站所提供的所有素材版权归原作者所有,本站只供网友参考与交流,未经作者同意请勿用于商业用途 京ICP备05051668号
服务器带宽提供:零刻数据 本站CDN由网觉天下提供技术支持。 下载带宽支持:重庆万网
52RIA.com[我爱RIA网]是中国第一个以RIA开源为主的网站:所涉及的栏目版块有RIA源码,RIA技术,RIA教程RIA酷站RIA论坛RIA第3方软件RIA电子书