应用思考-教育技术论坛

标题: cookbook as3笔记:如何处理事件 [打印本页]

作者: etthink    时间: 2007-11-21 14:45
标题: cookbook as3笔记:如何处理事件
看到36页了
笔记一:http://etthink.5d6d.com/thread-151-1-1.html

笔记二:http://etthink.5d6d.com/thread-152-1-1.html

笔记三:
http://etthink.5d6d.com/thread-191-1-1.html

事件是as3里绝对重要的概念和必须要掌握的知识。
在as3中你再也不能在影片剪辑上或按钮上写代码了,都必须写在帧上或外部的as文档中。
不管与在哪里,关于事件代码有统一的语法规范。

什么是事件?
可以这样理解,事件分成两种,一类是人的操作,一类是系统内容自己发生的事情。
人的事件主要是来自于鼠标与按钮。
中单击双击拖动或输入什么文字,按了哪个键,这都是人的事件。
系统也有自己的事件(不应当叫系统,叫swf或flashplayer什么的可能更合适)但可以这样理解:如加载一个图片,或者动画运行了多少时间等,都有特定的事件。

事件有几个相关的重要概念需要注意:

事件是什么事件。这本质上是事件发出者,不管是人还是系统,一个事件总是有一特定类型的,这非常重要。比如鼠标:你单击发生了MOUSEDOWN 这就是一个特定
的事件,它有事件源,即鼠标,也只有鼠标才能发出这样的事件。

事件发生了,是谁知道了发生了事件呢?
我们人自己知道当然不行,要让系统(机器)知道才行,就是事件要有一个侦听对象,有一个人来听,事件发生的时候,他听到了就可以了。

事件发生了,要干什么呢?
如果事件发生了,什么也不干,那我们就不需要事件了,事件最重要的是要在事件发生的时候,要做什么。即要有事件处理函数,或者上面的几个相关概念里说的事件句柄也可以。同样的意思,一个函数,或者就叫事件处理函数。在事件发生时,这个函数会被调用执行。

格式:
事件侦听对象.addEventlistener事件源.事件 ,事件处理函数);
事件源可以理解发出事件对象的类型,或者直接理解成事件类型如有什么鼠标事件,键盘事件,时间事件等等)。
事件处理函数的格式:
function 函数名(event:事件源):void{
语句
}

如下面语句:
addEventlistener(Event.ENTER_FRAME, onenterFrame);
在这里省略了侦听对象,那就是当前所在层的时间轴(影片剪辑)

相应的事件处理函数应当如下:
function onenterFrame(event:MovieClip)void{
语句
}




欢迎光临 应用思考-教育技术论坛 (http://www.etthink.com/) Powered by Discuz! X3.4