我过去做过的一种方法是使用全局整数并根据运行的 Web 服务增加/减少值。当计数器为 0 时,我会隐藏加载文本,当它大于 0 时,我会显示加载文本。这是它的简化版本:
<mx:Application>
<mx:Script>
[Bindable]public var ws_count:int = 0;
</mx:Script>
<mx:Label text = "loading..." visible="{ws_count > 0}" />
</mx:Application>
然后我有一个小助手类来控制全局计数器:
package ws {
import mx.core.Application;
public class WSCounter {
public static function sent():void {
Application.application.ws_count += 1;
}
public static function receive():void {
Application.application.ws_count -= 1;
}
}
}
然后所有需要做的就是在调用 Web 服务时调用辅助函数......例如:
import ws.WSCounter;
import mx.rpc.http.HTTPService;
var srv:HTTPService = new HTTPService();
srv.url = "http://localhost/service.py";
srv.addEventListener(ResultEvent.RESULT,function(event:ResultEvent):void {
WSCounter.receive();
});
srv.send();
WSCounter.sent();
我一直认为有更好的方法来做到这一点,就像你说的有某种类型的钩子来检测服务是否正在运行......我期待这篇文章中的其他回复......