2011-08-10 6 views
0

다음 코드는 이미지를 표시하고 마우스를 넘기면 변경됩니다. 1플렉스 이미지 위의 마우스

:

<mx:Image source="{ConfigApp.getResourcesPath()}/img.jpg" id="imgOne" 
    mouseOver="imgOne.source=ConfigApp.getResourcesPath()+'/img_over.jpg'" 
    mouseOut="imgOne.source=ConfigApp.getResourcesPath()+'/img.jpg'"/> 

나는이 문제가 나 이미지 위에 마우스를 빠르게 전달하는 경우, 몇 번 마우스 오버 이미지로 이미지 상태가합니다 (mouseOut 이벤트를 감지하지 않습니다).

둘째 : 마우스가 끝나는 순간 이미지가 없으면 몇 밀리 초가되므로 마우스가 끝날 때마다 흰색으로 깜박입니다.

답변

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> 
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"/> 
+0

이와 비슷한 것이 작동합니다. http://blog.benstucki.net/?p=42 – SuperSaiyen

관련 문제