1

我有一些与此类似的代码,但它不起作用。

var sensor:Number;
var toucher:Number;


fixtureB.GetBody().SetUserData("sensortouched-0";
var sensorArray:Array = fixtureB.GetUserData().split("-", 2);
sensor=sensorArray[1];


fixtureA.GetBody().SetUserData("sensortouched-0";
var sensorArray:Array = fixtureA.GetUserData().split("-", 2);
toucher=sensorArray[1];

if (toucher==0 && sensor==0)
{
trace("test");
}

跟踪传感器或触摸器确实等于“0”,但似乎没有进入 if 语句?

谢谢

4

1 回答 1

1

它不会进入if语句,因为您尝试比较字符串和数字。Split函数返回一个字符串数组。你应该这样比较:

if (toucher == "0" && sensor == "0")
{
   trace("test");
}

我什至不知道您如何将 a 分配String给 a Number。那是那里的一些不好的做法。我建议阅读更多关于Casting的内容。

顺便说一句,你应该这样分配它:

sensor = parseInt(sensorArray[1]);
于 2012-09-11T14:26:35.640 回答