我正在开发一个Flex应用程序,我需要动态更新一个按钮图标源,但是,通过在运行时将icon属性更改为另一个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或评论将不胜感激。
感谢。祝你有个美好的夜晚。
答案 0 :(得分: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;
}