onClipEvent 的怪脾气.

      Flash学习笔记 2006-5-18 22:57
先在主场景中建立两个独立的MC,在第一个MC的实例上写上如下的代码:
onClipEvent( mouseup ){
trace( "in the first MC!" );
this._x += 50;
}
 在第二个MC的实例上写上如下的代码:
onClipEvent( mouseup ){
trace( "in the second MC!" );
this._y += 50;
}

 好了,测试开始,无论你点击哪一个MC,两个MC中的 mouseup事件都将被触发,表现为:输出窗口中总是间隔的出现两句话:
in the first MC!
in the second MC!
in the first MC!
in the second MC!
 这是怎么回事呢?从现象上看,onClipEvent 是将事件加入到了 MC 的父类上,因此,主场景中所有的MC都将被触发相同的事件.一个MC中的 onClipEvent 将导致所有 MC中同样的事件代码将被触发.
 如果多个MC具有相同的事件处理函数,那么有可能在不是你期望的时候触发了这些函数.解决的办法是用 on( Press ) 来替代 onClipEvent(mousedown);或者代码尽量写在帧上面,避免使用onClipEvent.
 除了有这个怪脾气之外,MC中写入代码,会对调试及代码重用造成麻烦,所以,这已经是一种不被推荐的方法了,就让这个有着怪脾气的东东自已去玩吧.
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}