我有一个简单的代码似乎给出了奇怪的结果。
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的编辑系统仍然缺乏经验,我正在努力让它变得更清洁)
答案 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赋值移到循环之外并正常使用。一个奇怪的事情,但我应该知道更好。