我尝试将图像嵌入到mx:tree中:
<mx:Tree labelField="name" id="tree"
folderOpenIcon="@Embed(source='assets/images/test.png')"
folderClosedIcon="@Embed(source='assets/images/test.png')"
defaultLeafIcon="@Embed(source='assets/images/test.png')">
</mx:Tree>
这很好用,但我会用String变量嵌入图像。
我有一个变量和一个函数
[Bindable]
private var folderIcon:String;
public function setIcon(icon:String):void {
folderIcon = icon; // "assets/images/test.png"
}
但是如何更换这些线呢
folderOpenIcon="@Embed(source='assets/images/test.png')"
folderClosedIcon="@Embed(source='assets/images/test.png')"
defaultLeafIcon="@Embed(source='assets/images/test.png')"
带
folderIcon
?有人知道吗?或者我应该/可以使用样式表吗?
提前多多感谢&amp;最诚挚的问候。
答案 0 :(得分:2)
我不确定你为什么需要它。无论如何,如果您尝试在AS3中嵌入图像,您应该执行以下操作
class MyClass{
[Embed(source='assets/images/test_open.png')]
private static var folderOpenIcon:Class;
[Embed(source='assets/images/test_close.png')]
private static var folderClosedIcon:Class;
[Embed(source='assets/images/test_default.png')]
private static var defaultLeafIcon:Class;
[Bindable]
private var fodlerIcon:Class
public function setIcon(iconClass:Class):void {
folderIcon = iconClass:Class;
}
private function testIcon():void{
setIcon(defaultLeafIcon);
// or
setIcon(folderOpenIcon);
// etc
}
}
答案 1 :(得分:1)
嵌入发生在编译时;不是在运行时间。您无法使用set方法嵌入元素。
以下是有关嵌入资源的一些信息,例如Flex中的PNG:
http://livedocs.adobe.com/flex/3/html/help.html?content=embed_4.html
[Embed(source="assets/images/test.png")]
[Bindable]
public var folderIcon:Class;
你可以像这样使用它:
folderOpenIcon="{folderIcon}"
folderClosedIcon="{folderIcon}"
defaultLeafIcon="{folderIcon}"
答案 2 :(得分:0)
我可以使用样式表来完成。 你可以加入
styleName="myButton"
和via Stylesheets:
<mx:Style>
.projectButton {
icon: Embed("assets/images/test.png");
}
</mx:Style>
(也可能是外部样式表)。