事件侦听器示例汇总 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    示例

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

事件侦听器示例汇总

    这么说吧,就好像订报纸,我们可以每隔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

最新文章