关于Actionscript 3.0中的鼠标事件
来源:互联网 发布:如何在淘宝上开旗舰店 编辑:程序博客网 时间:2024/04/30 01:07
关于Actionscript 3.0中的鼠标事件
--------Actionscript 3.0 CookBook (I)
这本书是一本经典的书籍,说实话一些小的AS3的项目是做了好几个,基本的语法也都知道(其实有面向对象编程语言的基础后再入门一门新的语言还是很快的)。现在找到了这边经典书籍完整版,就好好看看,顺便写一些总结。
关于Actionscript 3.0的事件机制,以后分模块一个一个介绍,最后形成一个完整的文档。看了第一章,就说说鼠标事件,顺便说下我遇到的一个问题。Actionscript 3.0鼠标事件无非就是监听和捕获鼠标事件,比如Click,DoubleClick等,AS3中鼠标事件包是在flash.events.MouseEvent中。
在这里贴一个简单ActionScript 3.0实现写字板程序代码,结合代码来理解鼠标的监听,捕获处理过程。
其实看上面的代码就很简单地理解Actionscript 3.0中鼠标事件的处理过程,顺便传一张效果图片。
好了说一个我曾经犯的错误,代码如下:
- package
- {
- import flash.display.Sprite;
- import flash.events.MouseEvent;
- public class A extends Sprite
- {
- public function A()
- {
- graphics.beginFill(0xFF0000);
- graphics.drawCircle(100,100,40);
- graphics.endFill();
- addEventListener(MouseEvent.CLICK, testclick);
- }
- private function testclick(event:MouseEvent):void {
- trace("Hello World!!!");
- }
- }
- }
实际上上面的这段代码并不响应鼠标的CLICK事件,为什么,开始我也花了很长时间来查找原因。其实这涉及到Actionscript 3.0的事件实现机制,在这里简单解释下:
原因很简单,因为上面那样的一个文档类是空的,根本就没有任何显示对象,所以就不会响应鼠标事件了(那个DrawCircle 不能算显示对象,它只能算是一个背景而已,并不在Actionscript的显示列表中 ,所以Actionscript事件机制中就不可能向它分发事件消息)。但下面对以上代码做一下修改就可以。
- package {
- import flash.display.Sprite;
- import flash.events.MouseEvent;
- public class A extends Sprite {
- public function A() {
- var _sp:Sprite=new Sprite()
- _sp.graphics.beginFill(0xFF0000);
- _sp.graphics.drawCircle(100,100,40);
- _sp.graphics.endFill();
- addChild(sp)
- _sp.addEventListener(MouseEvent.CLICK, testclick);
- }
- private function testclick(event:MouseEvent):void {
- trace("Hello World!!!");
- }
- }
- }
对比俩代码就可以发现,后面的加了一个显示对象,并在显示对象上监听鼠标事件。 当然也可以想第一段代码中那样在Stage上监听。
注意,直接this.addEventListener这样来监听的是root,并不是Stage这样的DisplayObject对象,同样是不可以的。
- 关于Actionscript 3.0中的鼠标事件
- 关于mfc中的鼠标事件
- FLEX actionscript响应鼠标和键盘事件
- 积少成多Flash ActionScript 3.0(7) - 交互之鼠标事件和键盘事件
- 积少成多Flash ActionScript 3.0(7) - 交互之鼠标事件和键盘事件
- 关于鼠标点击事件
- 关于场景中的物件和鼠标事件的触发
- 关于鼠标事件中的event.clientY, event.pageY
- Swing中的鼠标事件
- wxWidgets 中的鼠标事件
- JQuery中的鼠标事件
- Java中的鼠标事件
- Qt 中的鼠标事件
- Qt中的鼠标事件
- js中的鼠标事件
- unity 中的鼠标事件
- 【AS 3.0 简介】关于 ActionScript
- ActionScript 3.0 中的 ComboBox控件
- 网页排版中10种致命的语义错误
- 解决网页上的FLASH挡住层的问题
- .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
- Web设计免费资源轻松获得
- 站长必备优化网页设计7款利器
- 关于Actionscript 3.0中的鼠标事件
- 记录好的网址--linux power management
- c++设计模式1:单态模板
- Display标签外部排序与分页(External Paging and Sorting)
- powertop移植
- 会议EI收录技巧谈
- 文字图片滚动代码-无缝滚动,强!!!
- 我飞过...
- 用户体验设计师的角色定位