更新:在下方回答!
我正在使用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
}
答案 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.
}