Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 为什么输出没有定义?_Actionscript 3_Flash - Fatal编程技术网

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
的范围内: