отображение изображения в flex - PullRequest
0 голосов
/ 25 марта 2012

Я работал с Haxe и ActionScript, но я новичок в гибкой разработке. Вот мой вопрос. Если я хочу получить изображение с сервера (blazeds) в AS3, я загружу его в Loader загрузчик, а затем добавлю его к какому-либо примеру. MovieClip. Должен ли я сделать то же самое, чтобы загрузить изображение в flex? Или есть что-то общее для гибкой схемы для этого?

Еще один вопрос. Если у меня есть изображение на сервере Blazeds, что будет лучшим способом получить его: передать его через Java (то есть прочитать его, а затем передать клиенту) или напрямую с помощью Loader?

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 25 марта 2012

BlazeDS обычно используется для отправки объектов, сериализованных в AMF. Это выглядит излишним, если сделать это для изображения, так как оно будет отправлено как ByteArray, но вы потратите ресурсы на его обработку. Возможно, лучший способ, особенно если изображение представляет собой статический контент, просто использовать его как статический файл на любом сервере, на котором работает BlazeDS.

Существуют различные способы использования изображения во Flex. Вот некоторые особенности Flex: используйте его как источник для компонента Image, однако этот компонент слишком велик для ряда задач. Например, создание плиток с одним и тем же изображением будет очень неэффективным, если вы используете этот компонент. Существует BitmapImage, который должен быть легким аналогом Image, но он может не обладать всей необходимой функциональностью (он не наследуется от InteractiveObject, поэтому он не может реагировать на события мыши. доступно только как компонент Spark.

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

  1. Если мне нужно кэшировать их в программе (чтобы использовать их BitmapData), я пишу класс, который отвечает за загрузку и кэширование результатов.

  2. Я пишу очень простой компонент, который расширяет UIComponent и использует его свойство graphics для рисования в нем заданного BitmapData. Обычно это позволяет легко делиться одним и тем же BitmapData на несколько компонентов.

  3. У этого компонента есть метод переопределения updateDisplayList, чтобы он масштабировал или обрезал BitmapData, который он использует.

Я использую Loader для загрузки изображений, поскольку другого способа сделать это на самом деле нет. Другие компоненты, такие как Image или SWFLoader или BitmapImage, также используют Loader и не добавляют ничего ценного.

Возможно, если вам нужна функциональность slice-9-grid, то есть что-то встроенное в набор компонентов Spark, но я все же предпочел бы сделать это сам, а потом положиться на него. Не следует доверять компонентам Flex.

1 голос
/ 25 марта 2012

Не обязательно.Установка свойства source объекта spark.components.Image загрузит изображение.

Для загрузки SWF-файлов вы можете использовать mx.controls.SWFLoader таким же образом.

...