Как задержать рисование компонента экрана до тех пор, пока не будет возвращен ответный вызов HttpService? - PullRequest
0 голосов
/ 04 июня 2011

У меня есть компонент экрана группы с некоторыми элементами Path внутри. Группа имеет стиль (по умолчанию), а путь имеет (по умолчанию) обводку. Когда программа запускается, (при инициализации) загружает с сервера (через HTTPService) некоторые данные, которые включают в себя разные стили для группы, а также могут включать разные цвет / ширину для обводки пути. Если атрибуты стилей / обводки не включены в ответ сервера, тогда компонент будет показан со значениями по умолчанию.

<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 Ответ

1 голос
/ 04 июня 2011

Я думаю, что вы должны добавить компонент после ответа HTTPService. Так что если у вас есть что-то вроде этого:

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

тогда код, который будет отображать компонент, должен быть в resultHandler () или эта функция должна вызывать тот, который отображает компонент

...