Происходит ли событие Flex после отображения объекта на экране - PullRequest
2 голосов
/ 01 декабря 2011

У меня есть изображение, которое загружается динамически и добавляется в мое более крупное приложение.

После загрузки изображения я хочу получить растровое изображение дисплея для печати. ​​

Проблема в том, что я не могу найти никаких событий, которые гарантированно срабатывают после изображение отображается на экране.

FlexEvent.CREATION_COMPLETE звучит ближе всего на бумаге, но, похоже, не сработает.

Чтобы проверить, я добавляю точку останова в конец обработчика, запускаемого событием, и проверяю, отображается ли изображение на экране при срабатывании точки останова.

Я вынужден использовать flex 3.3.

Ответы [ 3 ]

2 голосов
/ 01 декабря 2011

Изображения являются особым случаем - компонент может быть полным и видимым в списке отображения до того, как данные изображения будут загружены и обработаны.

Для s:Image посмотрите на событие Image.ready.

Если вы используете mx:Image, посмотрите на Image.complete. (Там также есть s:Image.complete - посмотрите комментарии flexdoc о том, чем он отличается от ready.)

0 голосов
/ 01 декабря 2011

MX Image завершил мероприятие, которое, я думаю, именно то, что вы ищете. К вашему сведению, каждый класс имеет раздел на своей языковой справочной странице под названием «События». Часто бывает полезно поучаствовать в этом и попробовать те, которые выглядят вероятными. http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/Image.html#eventSummary

0 голосов
/ 01 декабря 2011

Вы пробовали событие FlexEvent.SHOW?

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/core/UIComponent.html#event:show

Edit:

Если вы можете найти событие, которое запускается после загрузки данных (Event.COMPLETE или FlexEvent.CREATION_COMPLETE или что-то еще), вы можете избежать выполнения callLater () и предположить, что изображение будет визуализируется следующим кадром. Вроде хак, но стоит попробовать.

...