好的 - 99%的人都很容易回答。我有一个自定义类'Users()'。在PHP中,我正确填充了所有值。当我转到Flash Builder并执行测试功能时 - 所有数据都会正确返回。但是,当我单击一个按钮并引用CallResponder的lastResult属性时 - 它第一次出现NULL,然后如果第二次单击该按钮它将返回正确的结果。我错过了什么步骤?昨晚我和simliar有同样的问题,并且让BEYOND感到沮丧 - 特别是因为我知道它是一些我忽略的小细节。
所以只是为了澄清 - 假设有一个名为button1的按钮
所以button1的点击处理程序: 1)验证文本输入属性 2)询问服务器该用户和密码是否匹配 3)如果他们这样做 - 那么我希望它抓住所有特定用户信息并将其放入User类。再次 - 当我在Flash Builder中测试此函数/方法时,所有值都会按原样返回。它只是在第一个按钮点击它们返回NULL ...他第二次点击它们填充正常 - I.E .-
Alert.show(currentUser.userFirstName); (首先点击 - NULL) Alert.show(currentUser.userFirstName); (第二次点击 - “杰克”)
非常感谢任何帮助!我正在为此而努力,我知道这是一个简单而简单的步骤,我不知道。
感谢所有花时间提前帮助的人!
-CS
答案 0 :(得分:1)
简单地回答这个问题,Flex是异步的...这意味着您在下一行中执行的代码可能在您的PHP代码完成之前发生。当您第一次单击该按钮时,最后的结果尚未填充。按钮点击发生,但数据需要几秒钟才能恢复。同样,第二次点击按钮,您将获得最后用户信息,而不是当前的信息!!!
您需要做的是等待数据在您执行任何操作之前返回。为此,请向您的服务添加事件侦听器。它被称为“结果”处理程序。有很多很好的例子。
在处理程序中,继续使用lastResult ...或仅event.result
提醒您的弹出窗口。应该有你想要的东西。