2008-11-15 2 views
2

주 캔버스 영역의 약 50 % 만 차지하는 항목이있는 Flex 애플리케이션에 Canvas가 있습니다.투명 패널이 rollOver() 이벤트에 응답하도록 Flex에서 수정하는 올바른 방법

캔버스가 전체 영역에 대해 rollOver 이벤트에 응답하고 내부의 항목에서 다루는 영역이 아니라 원하는 영역 만 표시하려고합니다.

나는 이것을 달성하기 위해 다음과 같은 속성을 설정되었습니다

<mx:Canvas backgroundColor="white" 
backgroundAlpha=".01" 
rollOver="rollOver(event)">... 

이 롤오버 이벤트에 응답 할 수있는 전체 캔버스를 야기한다. 그것은 훌륭하게 작동합니다 - 나는 그것에 만족하지 않고 그것을 성취 할 수있는 더 좋은 방법이 있어야한다고 생각합니다.

UIComponent의 전체 영역에 마우스 이벤트가 적용되도록 강제하는 방법이 있습니까?

+0

"훌륭하게 작동합니다."라고 말하면 무엇이 '행복하지 않다'는 뜻입니까? 어떤 다른 기능을 찾으십니까? 캔버스의 자식을 롤오버 할 때 깜박 거리거나 그럴 수 있습니까? – seanalltogether

+0

그것은 그것을 위해 특별히 설계된 뭔가가 있어야하는 것처럼 보입니다. 심지어 불필요한 그래픽 작업이 필요합니다. 배경을 렌더링해야하기 때문입니다. –

답변

6

당신이하고있는 것은 완벽하게 수용, 당신은 간단한 0

내가 일상적으로 복잡한 멀티 레이어 UI의 대한 캔버스를 사용

에 backgroundAlpha을의 설정 및 설정할 수 있습니다 내 기본 캔버스 스타일을 CSS를 통해 backgroundAlpha를 0으로, backgroundColor를 #ffffff로 설정하면 캔버스가 실제로 표시되도록하려면 개별 backgroundAlpha 및 backgroundColor 속성을 조정해야합니다.

그래픽 객체의 알파 값을 0으로 설정해도 이벤트에는 계속 응답하지만 완전히 꺼지지는 않습니다. AS 코더는 항상 그렇게합니다!

+0

나는 한번도 시도한 적이 없었습니다. 아마도 투명하게 이미지가 있다면이게 자동적 일 것입니다. –

-2

당신은이 작업을 수행 할 수 있습니다 :

"캔버스"를 MXML에서 캔버스의 ID입니다
 


import flash.event.MouseEvent; 
... 
canvas.addEventListener(MouseEvent.ROLL_OVER,function(event:MouseEvent):void { 
    ... 
}); 
 

. 0.01의 임의의 알파 값이 불필요 사용하지만

+1

이것은 내가 원래 MXML에 가지고 있던 것과 같습니다. –

0

이미지의 투명도 부분을 무시하는 경우는 어떻게됩니까? 제 경우에는 롤오버 효과가 투명 부분이 아닌 이미지의 보이는 부분이 뒤집혀있는 경우에만 발생하고 싶습니다. 이것이 가능한가?

+0

나를 의심스럽게 만든 anythin보다 0.01이 더 많을 것입니다. 너를 위해서. 내가 전에 생각했던 swf 파일로 압축 된 PNG 파일로이 작업을 수행했습니다. –

관련 문제