flash高手看一下。。。。。。。。。。。。。

来源:百度知道 编辑:UC知道 时间:2024/05/12 17:49:59
onClipEvent(mouseDown){
_root.n++;
duplicateMovieClip(_root.aa,_root.aa+_root.n,_root.n);
trace(_root.n);
}
为什么鼠标点不到十几下。n的值就已经是几千了。n的初值为0。。。有高手能解释吗??谢谢了。。。这个脚本是定义在影片元件aa里的。。

哈哈,点一下鼠标,复制出N个影片元件aa来,而这N个aa都有这个脚本,每个aa都在使n增加,所以就会n 的n 倍拉
正确的做法应该是先判断一下
看:
onClipEvent(mouseDown){

if(this._name=="aa"){
duplicateMovieClip(_root.aa,_root.aa+eval(_root.n),_root.n);
_root.n=_root.n+1;
trace(_root.n);
}

}

只要把onClipEvent(mouseDown)改成on(Release)就OK了,其他不用改
onClipEvent(mouseDown)的意思是当鼠标按下时,每一帧执行1次
FLASH默认帧率为12,一般人单击左键大约为0.5秒,也就是说你每按一下就有6帧,第1帧会复制出来1个aa,第2帧2个aa会各复制1个aa,第3帧4个aa变8个aa这样不断复制,你按了10几下自然会变成上千