Flex图像鼠标悬停

时间:2011-08-10 13:44:26

标签: flex image mouseover mouseout

我有下一个显示图像的代码,当鼠标结束时更改它。

  <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事件)。

第二:鼠标结束的那一刻,当没有任何图像时有几毫秒,所以每当鼠标结束时它看起来就像一个白色闪光。

2 个答案:

答案 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>