我有下一个显示图像的代码,当鼠标结束时更改它。
<mx:Image source="{ConfigApp.getResourcesPath()}/img.jpg" id="imgOne"
mouseOver="imgOne.source=ConfigApp.getResourcesPath()+'/img_over.jpg'"
mouseOut="imgOne.source=ConfigApp.getResourcesPath()+'/img.jpg'"/>
我有两个问题:
第一:如果我用鼠标快速通过图像,有时用mouseOver图像处理图像状态(不检测mouseOut事件)。
第二:鼠标结束的那一刻,当没有任何图像时有几毫秒,所以每当鼠标结束时它看起来就像一个白色闪光。
答案 0 :(得分:4)
第二期: 它每次加载图像时,这个闪光灯在远程连接时会变得更糟。相反,在类中加入图像并切换类引用。
[Embed(source="/assets/imageOver.png")]
public static const overImage:Class;
[Embed(source="/assets/img.png")]
public static const image:Class;
然后像这样切换它们......
<mx:Image source="{image}" id="imgOne"
mouseOver="imgOne.source=overImage"
mouseOut="imgOne.source=image"/>
答案 1 :(得分:1)
我宁愿做这样的事情,它解决了所有问题:
[Bindable] public var isOurMouse:Boolean = false;
<mx:Canvas>
<mx:Image source="{ConfigApp.getResourcesPath()}/img.jpg"
mouseOver="isOurMouse = true"
mouseOut="isOurMouse = false"/>
<mx:Image source="{ConfigApp.getResourcesPath()}/img_over.jpg"
mouseEnabled="false" mouseChildren="false"
visible="{isOurMouse}"/>
</mx:Canvas>
到目前为止,如果您希望图像不要重新加载,则应该有两个图像,一个在另一个上,后台只在前景完成加载后重新加载。实际上,你的图像很复杂,但你没有看到它:
<mx:Canvas>
<mx:Image id="imgBkg"/>
<mx:Image id="imgFrg"
source="{something}"
complete="imgBkg.source = imgFrg.source"/>
</mx:Canvas>