繁体中文
设为首页
加入收藏
当前位置:网站制作首页 >> Flash教程 >> 事件侦听器示例汇总

事件侦听器示例汇总

2007-11-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:事件的侦听器-广播器模型与事件处理函数方法不同,它允许多个代码片断互不冲突地侦听同一事件。 这么说吧,就好像订报纸,我们可以每隔5分钟去看一次报纸到没到,如果您的时间很充裕的话;也可以跟报刊店的老板打...
关键字:侦听器 示例 事件

事件的侦听器-广播器模型与事件处理函数方法不同,它允许多个代码片断互不冲突地侦听同一事件。

这么说吧,就好像订报纸,我们可以每隔5分钟去看一次报纸到没到,如果您的时间很充裕的话;也可以跟报刊店的老板打声招呼,告诉他报纸到了,就给送来。很明显,后者的效率远高于前者,在Flash里面前者就像这样

this.onEnterFrame=function(){

if(paperArrived){

sendme();

}

}

结果就是每一帧都得检验paperArrived是否为true,效率太低,但也能解决问题。

运用事件侦听器-广播器模型,就像这样

var myObj=new Object();

myObj.onPaperArrived=function(){

sendme();

}

me.addListerner(myObj);

只要报纸一到,马上执行sendme();这个程序,高效啊!

下面来看一下demo,这里我没有把stage列入,因为比较偏,平时用到的也不多。

demo

主要代码(这里以mouse为例):

this.createEmptyMovieClip("tmp_mc", this.getNextHighestDepth());

var myMouseObj = new Object();

myMouseObj.onMouseDown = function() {

if (_xmouse>400 && _xmouse<550 && _ymouse>0 && _ymouse<300) {

this.target_mc = tmp_mc.createEmptyMovieClip("", tmp_mc.getNextHighestDepth()-10000);//注意:这里我减了10000,有什么区别大家可以回去试一下

origin_x = _xmouse;

origin_y = _ymouse;

this.Drawing = true;

}

};

myMouseObj.onMouseMove = function() {

if (_xmouse>400 && _xmouse<550 && _ymouse>0 && _ymouse<300) {

if (this.Drawing) {

//this.target_mc.clear();

this.target_mc.lineStyle(1, 0xff0000, 100);

this.target_mc.moveTo(origin_x, origin_y);

this.target_mc.lineTo(_xmouse, _ymouse);

}

updateAfterEvent();

}

};

msleep_btn._visible = false;

myMouseObj.onMouseUp = function() {

this.Drawing = false;

};

mactive_btn.clickHandler = function() {

Mouse.addListener(myMouseObj);

msleep_btn._visible = true;

mactive_btn._visible = false;

};

msleep_btn.clickHandler = function() {

Mouse.removeListener(myMouseObj);

msleep_btn._visible = false;

mactive_btn._visible = true;

};

源文件下载:addListener.zip

责任编辑:admin
相关文章