0

我正在开发一个 Flex 应用程序,我需要动态更新按钮图标源,但是,通过在运行时将图标属性更改为另一个 Class 变量对我来说还不够,我需要将 Class 源显式更改为另一个。我用谷歌搜索我的疑问,但还没有答案。

我想要以下内容: http ://www.java2s.com/Code/Flex/Graphics/ChangeImagesourceinbuttonaction.htm

但我需要它来做这样的事情:

[Embed(source="sun.jpg")]
[Bindable]
private var dayAsset:Class;

private function init(  ):void {
    dayImage.source = dayAsset;
}

private function showMoon(  ):void {
    dayAsset.source = "moon.jpg";
}

private function showSun(  ):void {
    dayAsset.source = "sun.jpg";
}

我已经尝试了以前的代码但没有成功。

为什么我需要以这种方式更新“dayImage”图像源?因为我在多个位置引用了图像,所以我需要在触发事件时全部更新

任何解决方案:P 或评论将不胜感激。

谢谢。有一个美好的夜晚。

4

1 回答 1

0

如果我理解这个问题;那么答案是您不能在运行时更改嵌入。它们在编译时执行;并成为您编译的 SWF 的一部分。

您很可能希望采用这样的方法:

// embed both images
[Embed(source="sun.jpg")]
[Bindable]
private var dayAssetSun:Class;

[Embed(source="moon.jpg")]
[Bindable]
private var dayAssetMoon:Class;

// us a variable to store the reference to the image you want to see
private var currentDayAsset :Class;

// set the current asset
private function init(  ):void {
    dayImage.source = currentDayAsset;
}

// these methods change the currentDayAsset variable; but do not affect the embeds
private function showMoon(  ):void {
    currentDayAsset =  dayAssetMoon;
}

private function showSun(  ):void {
    currentDayAsset =  dayAssetSun;
}
于 2012-12-02T13:30:15.997 回答