如何在HttpService响应回调返回之前延迟绘制屏幕组件?

时间:2011-06-04 12:22:43

标签: flex styles httpservice

我有一个Group屏幕组件,里面有一些Path元素。该组具有(默认)样式,并且Path具有(默认)笔划。当程序启动时,(在初始化时)从服务器(通过HTTPService)加载一些包含组的不同样式的数据,并且它还可以包括Path笔划的不同颜色/宽度。如果样式/笔划属性未包含在服务器响应中,则组件将以默认值显示。

<s:Group id="aaa" mouseEnabledWhereTransparent="false" styleName="style1">
    <s:Path x="1218.15" y="268.126" data="M23.6755 80.0898C18.1824 58.54 29.1824 66.8735 23.6755 80.0898Z" >
     <s:stroke>
        <s:SolidColorStroke color="#ff12ae" weight="1" joints="miter" miterLimit="4"/>
    </s:stroke>
  </s:Path> 
.....
.....
.....
</s:Group> 

问题是,当服务器返回不同的样式/笔划时,应用程序首先在屏幕上显示默认值,并在HttpService返回后刷新最终屏幕。

我读到了有关组件生命周期的内容,但很难弄清楚这个逻辑应该如何编码。是否应包含CallLater以延迟屏幕更新?是否应该在HTTPService回调函数结束后创建组件?

感谢 彼得

1 个答案:

答案 0 :(得分:1)

我认为您应该在HTTPService响应后添加组件。 所以,如果你有这样的事情:

<mx:HTTPService id="theService" url="http://localhost/bla.php"
  method="GET" resultFormat="text"
  result="resultHandler(event)" fault="faultHandler(event)"/>

然后显示组件的代码应该在 resultHandler()中,或者此函数应该调用显示组件的代码