war*_*ack 0 types undefined actionscript-3 uint
我正在开发一个函数,它在Flash AS3中获取舞台鼠标坐标,并在光标下方的十六进制网格中返回tile.我希望函数返回NaN或未定义如果光标不在tile上,如果是,则是对象数组中该tile的整数索引.
public function getCursorTile(mX:Number,mY:Number):uint
{
var tileIndex:uint = new uint(NaN);
trace(tileIndex);
for (i=0; i<tileArray.length; i++)
{
if (tileArray[i].hitTestPoint(mX,mY,true))
{
tileArray[i].tileBorder.gotoAndStop(1);
tileIndex = i;
}
}
return tileIndex;
}
Run Code Online (Sandbox Code Playgroud)
我一直在使用uint来处理大多数整数变量,也许这种数据类型不支持NaN或undefined?在定义tileIndex之后,此代码跟踪0.我正在使用hitTest,因为hexgrid不是正方形并且是随机生成的.Tile 0是第一个tile,当光标关闭时返回0,hex-map将导致问题.
NaN的类型为Number.你不能把它有意义地投入到uint中.
如果你真的必须返回NaN,请更改你的函数签名以返回:Number,但要明白如果该函数在你的关键路径上,你可能会略微降低性能.
这里可以使用一些C风格的技巧:如果有意义的图块索引总是正面的,并且您确信自己最终不会有超过20亿个图块,则可以返回-1表示"不是图块".你需要改变:uint成:int,并且要小心在你的代码中的两种类型之间的隐式转换.
| 归档时间: |
|
| 查看次数: |
1874 次 |
| 最近记录: |