对象数组
比如要构建一个有很多属性的数组,简单的可以这样做:
程序控制角色运动
下面这段代码控制 MovieClip mc 从 (50,50) 横向运动到(100,50) 停止,速度为 5 pixel:
精确计时
我们设定了时间为 60 秒,然后通过 setInterval 来定期(每1000milliseconds)触发一个函数 runTimer。
function runTimer 用来计时,当时间到了以后,转去执行 outThere。
function outThere 用来处理时间到了以后的动作,不要忘记 clearInterval(intervalID),停止计时。
找到目前最小的一个可用的深度 Depth(来自国外)
针对 Flash Player 6 的:
会出问题的 MovieClip,比如:
_root.createEmptyMovieClip("mc_name", availTopDepth());
getNextHighestDepth() 以及 getInstanceAtDepth(depth)是 for player 7 的。
鼠标消隐
鼠标消隐之后,右健弹出菜单,鼠标就又出现了,并且一直保留着~
完整的解决方法是:在 左健抬起、右健第二次抬起、回车键抬起的时候再次消隐鼠标。
完整的方法比较复杂,下面是一个简单的解决方法,可以解决绝大多数的问题:
我常用的一个加速度移动的代码
以下是引用片段:
//以下代码放到主场景第一帧
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的instance name
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) {
//default value
a_v.text = 5;
} else {
_global.a = Number(a_v.text) ? Number(a_v.text) : 5;
//trace(_global.a);
}
};
随机输出1到100而不从复的语句: