鼠标消隐
鼠标消隐之后,右健弹出菜单,鼠标就又出现了,并且一直保留着~
完整的解决方法是:在 左健抬起、右健第二次抬起、回车键抬起的时候再次消隐鼠标。
完整的方法比较复杂,下面是一个简单的解决方法,可以解决绝大多数的问题:
以下是引用片段:
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;
}
};
};
//////以下部分可选
//a_v是个可以输入的文本框,用来输入加速度,即可以自定义速度,方便调试
a_v.onChanged=function(){
if(a_v.text==""||Number(a_v.text)>1000||Number(a_v.text)<0){
//defaultvalue
a_v.text=5;
}else{
_global.a=Number(a_v.text)?Number(a_v.text):5;
//trace(_global.a);
}
};
随机输出1到100而不从复的语句:
以下是引用片段:
seq=newArray(100);
pArray=newArray(100);
functionmakeRandom(){
for(i=1;i<=100;i++){
seq[i]="A";
}
}
functionmRandom(){
while(true){
n=int(random(100))+1;
if(seq[n]=="A"){
seq[n]="0";
break;
}
}
return(n);
}
functionrArray(){
for(i=1;i<=100;i++){
pArray[i]=mRandom();
trace(pArray[i]);
}
}
stop();
偷梁换柱
我们可以用这样一个技巧,在某些函数外部加一些东西而不需要了解函数的代码~~
比如,假如当前有很多mc 覆盖了onEnterFrame函数,我们可以这样了解那些在_root下的mc 的onEnterFrame函
数是以什么顺序执行的: