Flash MX 2004 ActionScript图文教程(十三)
2.5事件处理函数
说完了常用的事件,在来说说事件处理的两种不同方法。前面介绍的事件处理代码的方式是这样添加的:首先,选择将要捕捉事件的对象(影片剪辑实例或者按钮),接着,打开脚本面板,然后编写“on 事件名称”的代码。比方说,假如我们要让一个影片剪辑实例捕获mouseDown事件,那么可以先在场景中选择这个影片剪辑实例(假设其名称为movieClip_mc),然后为其设置如下等的代码。 onClipEvent(mouseDown) { } 这种方式用起来简洁直观,但是它有一个缺点是――交互性不足。怎么说呢?这种方式建立起来的事件处理代码是“固定”的,不能在程序运行的过程中动态更改。比方说,我们假如我们希望这个影片剪辑在影片播放到第10帧的时候使用某一段代码来处理mouseDown事件,但是当影片播放到第20帧的时候,我们有需要另外一段代码来处理mouseDown事件。这样的应用你是不是没有碰到过,来举一个直观的例子说,我们都使用过电视机的遥控器,电视机的遥控器上很多按钮都是“多模态”的,也就是说,这些按钮在不同的状态下功能是不同的。调节声音的按钮在正常状态下是用来提高和减小音量的,但是假如你进入了颜色设置模式时,按同样的按钮调节的不再是音量而是颜色了。 仍旧举上面的例子来说明,假如我们在影片的某一个帧中加入这样的代码 movieClip_mc.onMouseDown = function() { } 就可以实现对事件处理代码的动态切换了。这个语句比较特别,它是说,将影片剪辑实例movieClip_mc的onMouseDown事件处理代码用function()代替,而function()后面的大括号中就是新的事件处理代码。你可以影片中多次使用这种方式,只要每次后面function()函数的内容不同就可以实现事件处理代面的动态调整了。需要注重的时候,使用这种方式定义事件处理代码是,影片剪辑实例必须出现在场景中,当它从场景中消失后,事件处理代码将会自动删除,假如要再次使用,必须重新指定。假如想删除时间的处理代码可以使用 delete movieClip_mc.onMouseDown 这样的语句。 通常在编写比较复杂的程序时,我们都倾向于使用事件处理函数来为场景中的对象设置事件处理代码,因为这样可以通过一条事件线将绝大多数代码串起来,便于代码的维护和调试。否则的话代码分散在各个对象内部,轻易使代码显得比较混乱,出了问题也不轻易找出错误所在。 返回类别: Flash教程 上一教程: Flash常用代码的介绍 下一教程: 用腾讯TT浏览器从网页上下载FLASH的新方式
您可以阅读与"Flash MX 2004 ActionScript图文教程(十三)"相关的教程: · Flash MX 2004 ActionScript图文教程(八) · Flash MX 2004 ActionScript图文教程(四) · Flash MX 2004 ActionScript图文教程(五) · Flash MX 2004 ActionScript图文教程(二) · Flash MX 2004 ActionScript图文教程(九)
|