Flex 3: возможно ли использовать удаленное изображение в качестве значка для LinkButton? - PullRequest
0 голосов
/ 09 июля 2009

Мы создаем LinkButton программно и хотели бы установить для его значка изображение, полученное с удаленного сервера, а не что-то встроенное в SWF. Свойство .icon ожидает Class, но я не могу понять, как создать один эквивалент @Embed, но из динамически сгенерированного URLRequest или URL String.

var myImage:Image = new Image();
myImage.source = "http://www.domain.com/img/1234.png";
myImage.width = 16;
myImage.height = 16;
myImage.scaleContent = true;

var myButton:LinkButton = new LinkButton();
myButton.label = "Some text"

// This is what I'm trying to figure out.
myButton.setStyle("icon", ???)

Я, вероятно, упускаю что-то очевидное - я пытался передать URL и myImage отдельно, но оба выдают ошибки. Вступление в метод setStyle() показывает, что код ожидает Class - так что я передам вместо ???

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

Спасибо за любую помощь!

Ответы [ 5 ]

0 голосов
/ 21 сентября 2011

для лаалто,

это может быть слишком поздно для ответа, но кто-то может найти его полезным или в качестве отправной точки для решения вашей проблемы. Вы пытались сослаться на значок своего изображения как на класс? Я не знаю, будет ли это работать для изображения, которое находится в динамическом URL, но это сработало для меня:

[Embed("assets/LinkButton.png")]
private const linkButtonIcon:Class;

Тогда в вашем коде:

myButton.setStyle("icon", linkButtonIcon);

Смотрите этот пример здесь:

http://blog.flexexamples.com/2008/09/03/setting-the-icon-on-a-linkbutton-control-in-flex/

0 голосов
/ 15 октября 2010

Если память используется, вам нужно использовать button.setStyle('icon', img), где img - изображение, загруженное с помощью Loader класса.

0 голосов
/ 11 июля 2009

Я думаю, что вместо того, чтобы пытаться установить стиль, вам нужно изменить дочерний объект, который содержит значок. Вы можете получить к нему доступ, например:

Var:Bitmap icon = myButton.getChildByName("upIcon") as Bitmap

Должно быть легко заменить там bitmapData данными из Loader.

0 голосов
/ 15 октября 2010
<mx:Button id="example" label="Example" icon="{IconUtility.getClass(example, 'http://www.exampledomain.com/image.jpg')}" />

http://blog.benstucki.net/?p=42

0 голосов
/ 09 июля 2009

Почему бы просто не установить buttonMode для mx: Image в true, а затем добавить событие щелчка?

<mx:Image source="{imageSource}" buttonMode="true" click="action()" />

Я не уверен, что это возможно без использования встроенных изображений со ссылкой Кнопка

Это может стоить прочитать

Редактировать ... в AS3:

var img:Image = new Image();
img.source = "...";
img.buttonMode = true;
img.addEventListenever(MouseEvent.CLICK, funcName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...