当我将鼠标移到它上面时,我想改变图像的颜色。
所以我准备了2张图片,这是eventListener:
private function mouseOverHandler(e:MouseEvent):void {
e.target.source = "@Embed(source='../icons/userIconOver.png')";
}
不幸的是,当我移动鼠标时,我只看到一个空白图像(错误,图像未找到)。但是编译器没有给我任何错误,我尝试使用原始图像的相同路径,并且在运行时从根目录引用时也删除“../”。但仍然没有。
当然,图像存储在那里。
但是,如果我可以应用效果将颜色从蓝色变为橙色到我的图像(通过保留透明度),我可以用不同的方式解决
由于
答案 0 :(得分:2)
这不是做你想做的最简单的方法。样式表是为此而构建的,因此请将皮肤样式用于各种状态。例如:
.backButton{
upSkin: Embed(source="BackButton.png");
downSkin: Embed(source="BackButtonDown.png");
overSkin: Embed(source="BackButtonOn.png");
disabledSkin: Embed(source="BackButton.png");
selectedUpSkin: Embed(source="BackButtonDown.png");
selectedDownSkin: Embed(source="BackButtonDown.png");
selectedOverSkin: Embed(source="BackButtonDown.png");
selectedDisabledSkin: Embed(source="BackButtonDown.png");
}
比每次需要时以编程方式更改状态要容易得多。
答案 1 :(得分:0)
虽然我认为Robusto的解决方案是最好的,但现有代码的问题在于您将源指向字符串。您没有使用MXML,因此编译器不会为您解析嵌入代码,您需要单独嵌入图像:
(在班级的顶部:)
[Embed(source='../icons/userIconOver.png')]
public var myImageRef:Class
(在您的事件处理程序中)
e.target.source = myImageRef;