对象数组
比如要构建一个有很多属性的数组,简单的可以这样做:
以下是引用片段:
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 就会得到最近的一个可用深度。我们也可以用这个来创建绝对不
会出问题的 MovieClip,比如:
_root.createEmptyMovieClip("mc_name", availTopDepth());
getNextHighestDepth() 以及 getInstanceAtDepth(depth)是 for player 7 的。