Flex 3:是否可以使用远程图像作为LinkBut​​ton的图标?

时间:2009-07-09 18:27:01

标签: flex flex3

我们正在以编程方式创建一个LinkBut​​ton,并希望将其图标设置为从远程服务器检索的图像,而不是嵌入在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 :(得分:0)

为什么不将mx:Image的buttonMode设置为true然后添加点击事件?

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

如果不使用带有linkBut​​ton

的嵌入式图像,我不确定是否可行

This可能值得一读

编辑...在AS3中:

var img:Image = new Image();
img.source = "...";
img.buttonMode = true;
img.addEventListenever(MouseEvent.CLICK, funcName);

答案 1 :(得分:0)

我认为不需要尝试设置样式,而是需要更改包含图标的子对象。您可以通过以下方式访问它:

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

使用Loader中的那个替换bitmapData应该很容易。

答案 2 :(得分:0)

如果内存有效,则您需要使用button.setStyle('icon', img),其中img是通过Loader类加载的图片。

答案 3 :(得分:0)

对于laalto,

这可能为时已晚,但有人可能会发现它很有用,或者作为解决问题的起点。您是否尝试将图像图标作为一个类引用?我不知道这是否适用于动态网址中的图片,但这对我有用:

[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/

答案 4 :(得分:-2)

<mx:Button id="example" label="Example" icon="{IconUtility.getClass(example, 'http://www.exampledomain.com/image.jpg')}" />

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