as3如果语句不起作用(从php加载var)

时间:2014-05-15 05:24:57

标签: php actionscript-3 if-statement

更新:在下方回答!

我正在使用as3 for Air编码的移动设备调用php脚本。 php脚本运行良好,并将正确的var发送回as3。我得到了正确的trace语句,但if语句不起作用。

这是php行:

echo "done=success";

这是as3代码

var variables:URLVariables = new URLVariables(event.target.data);
trace(variables.done); // WORKS echos out: success

// So I figured this line should work too, but it doesn't. Any ideas why?           

if(variables.done=="success")
{
// Does not work            
}

1 个答案:

答案 0 :(得分:1)

白色空间!

我发现答案是一个额外的空白区域,php或as3最后添加了。在跟踪声明中无法看到它。我想出了这个,因为我复制了trace语句并发现有一个额外的空白区域我可以突出显示。

简而言之,在trace语句中看起来像“成功”这个词(没有引号),实际上是带有额外空白的var“成功”。因此,if语句不能将其视为“成功”,因为它确实是“成功”。

要解决此问题,我使用了以下代码:

var variables:URLVariables = new URLVariables(event.target.data);
trace(variables.done);

var itWorked:String = variables.done;
var rex:RegExp = /[\s\r\n]*/gim;
itWorked = itWorked.replace(rex,'');
if (itWorked == "success")
{
// Now it works. I hope this helps someone. 
}