Apache flex Flex3:是否可以使用远程图像作为链接按钮的图标?
我们正在以编程方式创建一个LinkButton,并希望将其图标设置为从远程服务器检索到的图像,而不是SWF中嵌入的图像。.icon属性需要一个类,但我不知道如何从动态生成的URLRequest或URL字符串创建一个与@Embed等效的类Apache flex Flex3:是否可以使用远程图像作为链接按钮的图标?,apache-flex,flex3,Apache Flex,Flex3,我们正在以编程方式创建一个LinkButton,并希望将其图标设置为从远程服务器检索到的图像,而不是SWF中嵌入的图像。.icon属性需要一个类,但我不知道如何从动态生成的URLRequest或URL字符串创建一个与@Embed等效的类 var myImage:Image = new Image(); myImage.source = "http://www.domain.com/img/1234.png"; myImage.width = 16; myImage.height = 16; my
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方法表明代码需要一个类-那么我应该传递什么来代替
我不能嵌入图像本身,因为它是动态的——每次软件运行时,URL都是不同的
谢谢你的帮助 为什么不将mx:Image的buttonMode设置为true,然后添加一个click事件
<mx:Image source="{imageSource}" buttonMode="true" click="action()" />
我认为,与其尝试设置样式,不如更改保存图标的子对象。您可以通过以下方式访问它:
Var:Bitmap icon = myButton.getChildByName("upIcon") as Bitmap
用加载程序中的位图数据替换其中的位图数据应该很容易
<mx:Button id="example" label="Example" icon="{IconUtility.getClass(example, 'http://www.exampledomain.com/image.jpg')}" />
如果内存可用,您需要使用button.setStyle'icon',img,其中img是通过Loader类加载的图像。对于laalto 这可能是一个太晚的答案,但有人可能会发现它有用或作为一个起点,以解决您的问题。您是否尝试将图像图标作为类引用?我不知道这是否适用于动态URL中的图像,但这适用于我:
[Embed("assets/LinkButton.png")]
private const linkButtonIcon:Class;
然后在代码中:
myButton.setStyle("icon", linkButtonIcon);
请参见以下示例:
正如我提到的,我们需要以编程方式创建按钮——它是基于特定状态制造UI组件的工厂模式的一部分。我不希望仅仅为了绑定映像而创建一个新的MXML组件——希望有一些简单的方法通过代码设置映像。但是谢谢-这是一个合理的建议,如果基于代码的解决方案不可行,我会尝试。克里斯,谢谢你的编辑。如果我们只需要图像,你是对的,这会很好。但我们希望有一个LinkButton来保持与UI上其他组件的一致外观,它需要包括图标、标签文本和鼠标在LinkButton开箱即用的交互——如果我们可以从URL填充图标……它是一个LinkButton,而不是一个按钮
myButton.setStyle("icon", linkButtonIcon);