varallDepths=[]; for(varzin_root){ if(_root[z]instanceofButton||_root[z]instanceofMovieClip||_root[z]instanceofTextField){ allDepths.push(_root[z].getDepth()); } } if(allDepths.length!=0){ sortAll=function(a,b){if(ab){return1;}else{return0;}}; allDepths.sort(sortAll); return(parseInt(allDepths[allDepths.length-1])+1); } }; trace(_root.availTopDepth());放置一个 MovieClip 在 Stage,再执行这段 Action 就会得到最近的一个可用深度。我们也可以用这个来创建绝对不 会出问题的 MovieClip,比如: _root.createEmptyMovieClip("mc_name", availTopDepth()); getNextHighestDepth() 以及 getInstanceAtDepth(depth)是 for player 7 的。 鼠标消隐 鼠标消隐之后,右健弹出菜单,鼠标就又出现了,并且一直保留着~ 完整的解决方法是:在 左健抬起、右健第二次抬起、回车键抬起的时候再次消隐鼠标。 完整的方法比较复杂,下面是一个简单的解决方法,可以解决绝大多数的问题: 以下是引用片段: onEnterFrame=function(){ if(Key.isDown(1)||Key.isDown(Key.ENTER)){ Mouse.hide(); } } 我常用的一个加速度移动的代码 以下是引用片段: //以下代码放到主场景第一帧 stop(); _global.a=5; //移动加速度,越大越慢 _global.click_x=0; //用来记录点击鼠标的位置 _global.click_y=0; _root.onMouseDown=function(){ _global.click_x=_root._xmouse; _global.click_y=_root._ymouse; //me是受控mc的instancename me.onEnterFrame=function(){ if(Math.abs(_global.click_x-me._x)<2&&Math.abs(_global.click_y-me._y)<2){ //如果已经基本移到了鼠标点过的位置就取消这个事件句柄的响应程序 delete(this.onEnterFrame); return; }else{ //控制移动 me._x+=(_global.click_x-me._x)/_global.a; me._y+=(_global.click_y-me._y)/_global.a; } }; }; //////以下部分可选 |