重用HTTPService对象时出现问题

时间:2009-10-22 19:51:59

标签: flex httpservice

我正在尝试在flex应用程序中重用HTTPService对象,但我遇到了问题。在ResultEvent.RESULT的处理程序中,我正在删除侦听器,但它没有被删除。我必须从send()中捕获asyncToken并附加一个新属性,以便我知道它应该在处理程序中做什么。

我在这里设置了一个示例:http://www.152.org/flex/
您可以右键单击并查看源。

是否有其他人遇到过没有删除侦听器的问题? HTTPService是否应该重用?

3 个答案:

答案 0 :(得分:3)

您无法删除mxml标记中添加的事件侦听器。 livedocs说:

  

您只能删除在ActionScript块中使用addEventListener()方法添加的事件侦听器。您无法删除MXML标记中定义的事件侦听器

在动作脚本(HTTPService中)定义creationComplete个对象,并使用addEventListener方法添加事件侦听器,以便您可以调用removeEventListener来重复使用。< / p>

答案 1 :(得分:0)

无法保证删除事件侦听器。在对象上安装时,尝试将其设置为弱事件处理程序。当你移除它时,Flex的GC有更好的机会释放它。

答案 2 :(得分:0)

我今天遇到了这个问题,这个应用程序运行了好几个月。经过一段时间的调试后,我发现我的flex编译器设置最近从3.1升级到3.4是罪魁祸首。现在我已经恢复了3.1作为编译环境,以便我的项目继续工作。

在我看来,这是在Flex 3.1之后的某个时候引入的一个主要错误,我希望adobe很快修复它。我一直在我的代码中重复使用HTTPService,这个bug使得版本3.4对我来说不可行。

希望这有帮助。