日期:2014-5-2 浏览次数:20346次

对象数组

比如要构建一个有很多属性的数组,简单的可以这样做:

以下是引用片段:

vara:Array=newArray();

for(vari=0;i<10;i++){

a[i]=newObject();

a[i].x=10;

a[i].y=10*i;

a[i].name="---";

a[i].id=i;

//随便你给什么属性啊。

}

////先用局部变量存储对象会更好一点。

vara=newArray()

for(vari=0;i<10;i++){

varta=newObject();

ta.x=10;

ta.y=10;

ta.name="n"+i;

a.push(ta);

}

////或者更简便一点的方法:

vara=newArray()

for(vari=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),停止计时。

以下是引用片段:

vartime:Number=60;

varintervalID:Number;

intervalID=setInterval(runTimer,1000);

functionrunTimer(){

time--;

trace(time);

if(time==0){

outThere();

}

}

functionoutThere(){

//blahblahblah

clearInterval(intervalID);

}

找到目前最小的一个可用的深度 Depth(来自国外)

针对 Flash Player 6 的:

以下是引用片段:

availTopDepth=function(){

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 就会得到最近的一个可用深度。我们也可以用这个来创建绝对不

会出问题的 Mov