诚意求助flash as问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 04:19:44
主要想做一个物体根据getTime的时间下落的东东,即当getTimer到某一关键点时(如下面的hitDown),就让物体a复制并下落,然后判断如果物体a下落到bottomLoc
位置,就让其停止,现在的问题是,a的下落过程需要一定时间,而如果这个时间大于hitDown中两个关键点的时间差,就没办法控制a的动作,希望大家能想办法帮我解决下,谢谢!
var hitDown = [1000, 1400, 5000, 8000];//getTime的关键点
var keyArray = [106, 106, 106, 106];
var topLoc:Number = 52;//下落的起点位置
var bottomLoc:Number = 395;//下落的终点位置
var speed:Number = 0.5;//下落速度
var num = 0;
this.attachMovie("a", "a", this.getNextHighestDepth(), {_x:100, _y:topLoc});
a2.stop();
this.createTextField("timer_txt", this.getNextHighestDepth(), 100, 100, 100, 22);
function blockAction() {
timer_txt.text = getTimer();
if (getTimer()>=hitDown[num]) {
var key = keyArray[num];
switch (key) {
case 106 :
duplicateMovieClip("a", "a2", this.getNextHighestDepth());
blockAction2();
num += 1;
break;
}
}
}
doGame = setInterval(

现在你的代码是这样的

到了时间,复制a命名a2向下移动,但是还没有到下边界的时候,又重新复制了a2,将a2又替换了一遍,所以,你的a2一直复制出来向下移动一段距离后又重新来一遍。

不知道你要的是什么样的结果。

var hitDown = [1000, 1400, 5000, 8000];
//getTime的关键点
var keyArray = [106, 106, 106, 106];
var topLoc:Number = 52;
//下落的起点位置
var bottomLoc:Number = 295;
//下落的终点位置
var speed:Number = 0.5;
//下落速度
var num = 0;
this.createTextField("timer_txt", this.getNextHighestDepth(), 100, 100, 100, 22);
function blockAction() {
if (hitDown[num] != undefined) {
if (getTimer()>=hitDown[num]) {
_root.attachMovie("a", "a"+num, _root.getNextHighestDepth());
_root["a"+num]._y = 100;
_root["a"+num]._x = num*50+100;
trace("a"+num);
num += 1;
}
}
for (var i = 0; i<=num; i++) {
if (_root["a"+i]._y>=bottomLoc) {
_root["a"+i]._y = topLoc;