对象数组
比如要构建一个有很多属性的数组,简单的可以这样做:
var a:Array = new Array();
for (var i = 0; i<10; i++) {
a[i] = new Object();
a[i].x = 10;
a[i].y = 10*i;
a[i].name = "---";
a[i].id = i;
// 随便你给什么属性啊。
}
////先用局部变量存储对象会更好一点。
var a=new Array()
for(var i=0;i<10;i++){
var ta=new Object();
ta.x=10;
ta.y=10;
ta.name="n"+i;
a.push(ta);
}
////或者更简便一点的方法:
var a=new Array()
for(var i=0;i<10;i++){
a[i]={x:10,y:10,name:"n"+i}
}
程序控制角色运动
下面这段代码控制 MovieClip mc 从 (50,50) 横向运动到(100,50) 停止,速度为 5 pixel:
mc._x = mc._y=50;
mc.onEnterFrame = function() {
_x += 5;
trace(_x);
if (_x == 100) {
delete (mc.onEnterFrame);
}
};
精确计时
我们设定了时间为 60 秒,然后通过 setInterval 来定期(每1000milliseconds)触发一个函数 runTimer。
function runTimer 用来计时,当时间到了当前,转去执行 outThere。
function outThere 用来处理时间到了当前的动作,不要忘记 clearInterval(intervalID),停止计时。
var time:Number = 60;
var intervalID:Number;
intervalID = setInterval(runTimer, 1000);
function runTimer() {
time--;
trace(time);
if (time == 0) {
outThere();
}
}
function outThere() {
// blah blah blah
clearInterval(intervalID);
}
找到目前最小的一个可用的深度 Depth(来自国外)
针对 Flash Player 6 的:
availTopDepth = function () {
var allDepths = [];
for (var z in _root) {
if (_root[z] instanceof Button || _root[z] instanceof MovieClip || _root[z] instanceof TextField) {
allDepths.push(_root[z].getDepth());
}
}
if (allDepths.length != 0) {
sortAll = function (a, b) { if (ab) {return 1;} else {return 0;}};
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的instance name me.onEnterFrame = function() { if (Math.abs(_global.cl
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
|