BlazeDS обычно используется для отправки объектов, сериализованных в AMF. Это выглядит излишним, если сделать это для изображения, так как оно будет отправлено как ByteArray
, но вы потратите ресурсы на его обработку. Возможно, лучший способ, особенно если изображение представляет собой статический контент, просто использовать его как статический файл на любом сервере, на котором работает BlazeDS.
Существуют различные способы использования изображения во Flex. Вот некоторые особенности Flex: используйте его как источник для компонента Image
, однако этот компонент слишком велик для ряда задач. Например, создание плиток с одним и тем же изображением будет очень неэффективным, если вы используете этот компонент. Существует BitmapImage
, который должен быть легким аналогом Image
, но он может не обладать всей необходимой функциональностью (он не наследуется от InteractiveObject
, поэтому он не может реагировать на события мыши. доступно только как компонент Spark.
Что я обычно делаю, если мне нужно использовать изображения, это:
Если мне нужно кэшировать их в программе (чтобы использовать их BitmapData
), я пишу класс, который отвечает за загрузку и кэширование результатов.
Я пишу очень простой компонент, который расширяет UIComponent
и использует его свойство graphics
для рисования в нем заданного BitmapData
. Обычно это позволяет легко делиться одним и тем же BitmapData
на несколько компонентов.
У этого компонента есть метод переопределения updateDisplayList
, чтобы он масштабировал или обрезал BitmapData
, который он использует.
Я использую Loader
для загрузки изображений, поскольку другого способа сделать это на самом деле нет. Другие компоненты, такие как Image
или SWFLoader
или BitmapImage
, также используют Loader и не добавляют ничего ценного.
Возможно, если вам нужна функциональность slice-9-grid, то есть что-то встроенное в набор компонентов Spark, но я все же предпочел бы сделать это сам, а потом положиться на него. Не следует доверять компонентам Flex.