actionscript 3 trace返回一个空白函数而不是一个数字

时间:2011-08-16 18:45:19

标签: actionscript-3

我有一个简单的代码似乎给出了奇怪的结果。

var startPoint:Point = new Point(x, y); // a point
var r:Number = path[i].row + (-Math.floor((length * 2 + 2) / 2)); // just some math
trace(r); // the math checks out and gives a 3
var tey = startPoint.y + r; //this gives a really strange return....
trace(startPoint.y + r, tey); // this works, and then gives the strange return.

回报是

3
10 7function Function() {}

作为

var tey:Number = startPoint.y + r;
trace(startPoint.y + r, tey);

回报是

10 NaN
如果您觉得信息很重要,那么IDE就是FlashDevelop。

其他信息/测试:

trace(startPoint.y);

追踪

7

:编号

var tey:Number = startPoint.y + r;
trace(tey);

等于

NaN

数()

var tey = Number(startPoint.y) + r;
trace(tey);

等于

7function Function() {}

(原谅我糟糕的帖子布局,我对stackoverflow的编辑系统仍然缺乏经验,我正在努力让它变得更清洁)

2 个答案:

答案 0 :(得分:1)

我无法重现您的问题。 你的问题在于这一行的X和Y值,可能更多是Y值。

var startPoint:Point = new Point(x, y); // a point

尝试将X和Y硬编码为0

以下是我运行的一些示例代码。这按预期工作,所以当你访问路径[i]时,我将假设它的变量X和Y或与“i”相关的东西.row

var startPoint:Point = new Point(0, 0); // a point
var r:Number = 3; // just some math
trace(r); // the math checks out and gives a 3
var tey = startPoint.y + r; //this gives a really strange return....
trace(startPoint.y + r, tey); // this works, and then gives the strange return.

答案 1 :(得分:0)

我发现了这个问题,我在上面的示例中添加了部分代码。

var startPoint:Point = new Point(x, y); // a point
for ( /*for stuff*/ ){
    var r:Number = path[i].row + (-Math.floor((length * 2 + 2) / 2)); // just some math
}
trace(r); // the math checks out and gives a 3
var tey = startPoint.y + r; //this gives a really strange return....
trace(startPoint.y + r, tey); // this works, and then gives the strange return.

在for循环内部变量使得它在外面使用时行为奇怪,所以我不得不将var赋值移到循环之外并正常使用。一个奇怪的事情,但我应该知道更好。