Как расширить компонент SWFLoader, чтобы «подогнать» изображение любого размера внутри него? - PullRequest
1 голос
/ 21 февраля 2010

SWFLoader's scaleContent не может сделать то, что я пытаюсь достичь:

<mx:SWFLoader id="img" width="600" height="400" scaleContent="true"/>

Когда в него загружено изображение размером 100x80, оно не изменяется до 600x400. Это потому, что scaleContent = true.

Затем я устанавливаю keepAspectRatio = true. Размер изображения увеличился до 600x400, но, очевидно, он был совершенно не пропорционален.

Так как же я всегда подгоняю изображение любого размера под текущий размер SWFLoader, сохраняя соотношение сторон? Изображение с измененным размером может быть обрезано, что нормально.

СЦЕНАРИЙ: изображение размером 1500x10 загружено внутри вышеуказанного SWFloader. В этом случае высота (10) должна быть изменена до 400, а ширина (1500) должна автоматически изменяться в зависимости от высоты. лот изображения будет обрезан, что нормально.

Есть какие-нибудь указатели на то, как чего-то подобного можно достичь?

1 Ответ

1 голос
/ 21 февраля 2010

Используйте вместо этого Flex Image Control.

Следующий код заставит изображение к желаемому размеру независимо от размера изображения. Я считаю, что это то, что вы хотите.

<mx:Image id="image1" 
        source="@Embed(source='logo.jpg')" 
        width="20" height="20"/>

Таким образом, независимо от того, будет ли это изображение 800x600, оно будет отображаться как 20x20.

Дополнительная информация о контроле изображений :

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

Чтобы задать явную высоту или ширину импортируемого изображения, задайте его свойства высоты и ширины элемента управления «Изображение». Установка свойства height или width не позволяет родительскому элементу изменять его размер. Свойство scaleContent имеет значение по умолчанию true; поэтому Flex масштабирует изображение по мере его изменения, чтобы соответствовать указанной высоте и ширине. Соотношение сторон поддерживается по умолчанию, поэтому изображение может не полностью заполнить указанное пространство. Установите для свойства scaleContent значение false, чтобы отключить масштабирование. Установите для свойства keepAspectRatio значение false, чтобы изображение могло заполнить все доступное пространство независимо от его размеров.

Полная ссылка: http://livedocs.adobe.com/flex/3/html/help.html?content=controls_16.html#484971

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...