如何通过CSS皮肤mx:图像源?

时间:2011-02-15 14:23:41

标签: flex

例如,可以嵌入图像......

[Embed("myImage.png")]
public var myImage:Class;

并将其分配给mx:Image的源属性,如下所示:

<mx:Image source="{myImage}" />

但如果我希望能够从已编译的CSS文件中加载图像,例如:

,该怎么办?
.myImage {some-property: Embed("myImage.png"); }

将这种样式化图像分配给mx:图像的源属性最简洁的方法是什么?

1 个答案:

答案 0 :(得分:1)

好吧,我找到了解决方案:

您可以在组件中加载图像,在这种情况下为Spark面板:

s|Panel {
    myImage: Embed(source="assets/images.swf", symbol="simple_image");
    myOtherImage: Embed(source="assets/images.swf", symbol="other_image");
}

然后,当您在运行时更改样式时,您可以对StyleEvent.COMPLETE事件做出反应:

var css:CSSStyleDeclaration = StyleManager.getStyleManager(null).getStyleDeclaration("spark.components.Panel");
var myImage:Object = css.getStyle("myImage");
var myOtherImage:Object = css.getStyle("myOtherImage");

从那里,您可以轻松地将这些自定义样式图像分配给mx:Image组件的源。