Actionscript 3 为什么输出没有定义?
我有两个对象名为Actionscript 3 为什么输出没有定义?,actionscript-3,flash,Actionscript 3,Flash,我有两个对象名为ball和ground,我试图找到它们之间的最大距离,但为什么magest的值总是“未定义的” 代码如下: var dt: Array = []; var greatest = 0; var i: int; var j: int; ball.addEventListener(Event.ENTER_FRAME, bg); function bg(event: Event) { d = Math.sqrt(ball.x - ground.x) * (ball.x * gro
ball
和ground
,我试图找到它们之间的最大距离,但为什么magest
的值总是“未定义的
”
代码如下:
var dt: Array = [];
var greatest = 0;
var i: int;
var j: int;
ball.addEventListener(Event.ENTER_FRAME, bg);
function bg(event: Event) {
d = Math.sqrt(ball.x - ground.x) * (ball.x * ground.x) + (ball.y - ground.y) * (ball.y - ground.y);
for (i = 1; i < 1002; i++) {
dt[i] = d;
}
for (j = 1; j < 1002; j++) {
if (dt[j] > dt[j + 1]) {
greatest = dt[j];
} else {
greatest = dt[(j + 1)];
}
}
}
vardt:Array=[];
var=0;
变量i:int;
var j:int;
ball.addEventListener(Event.ENTER_FRAME,背景);
功能背景(事件:事件){
d=数学sqrt(ball.x-ground.x)*(ball.x*ground.x)+(ball.y-ground.y)*(ball.y-ground.y);
对于(i=1;i<1002;i++){
dt[i]=d;
}
对于(j=1;j<1002;j++){
如果(dt[j]>dt[j+1]){
最大值=dt[j];
}否则{
最大值=dt[(j+1)];
}
}
}
我不知道这段代码有什么好处,或者它应该做什么!但是,以下是最大值
总是未定义的原因:
循环的第一个将dt
数组中1
到1001
范围内的元素赋值为d
在第二次for
循环的每次迭代中,比较两个相等的值,因此
比较失败,流执行else
语句中的指令,分配最大的
,结果为dt[(j+1)]
。然而,在上一次迭代中(当j
等于1001
),执行相同的例程,但这次,dt[(j+1)]
的表达式计算为dt[1002]
,这是未定义的(请记住,“已定义”元素位于1
到1001
的范围内: