내가 플렉스에 새로 온 사람과 내가 BorderContainermouseOver/mouseDown/mouseUp/etc 추가하기. 사용자 정의 MXML 구성 요소에
<?xml version="1.0" encoding="utf-8"?>
<s:BorderContainer
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="160" height="140" >
<s:Image id="_avatar" enableLoadingState="true"
x="0" y="0" width="160" height="120" />
<s:Label id="_username" x="0" y="125"
fontSize="12" fontWeight="bold" />
</s:BorderContainer>
내가 노력하고있어 기반으로하는 사용자 정의 MXML 컴포넌트를 만든 4.5
플렉스 순수 플래시/AS3 응용 프로그램을 포팅하고 mouseOver로
에/강조 성장 효과를 추가하고 해당 구성 요소에 mouseDown에 효과 "를 누를"로 :
<fx:Script>
<![CDATA[
import flash.filters.*;
public static const SHADOW:Array = [ new DropShadowFilter(8,
80, 0x000000, 0.2, 32, 32, 1, 1, false, false, false) ];
public static const GLOW:Array = [ new GlowFilter(0xFFFF00,
0.5, 36, 36, 1, 1, false, false) ];
private var _oldScale:Number;
private function mouseOver(event:MouseEvent):void {
_oldScale = scaleX;
filters = GLOW;
}
private function mouseDown(event:MouseEvent):void {
_oldScale = scaleX;
scaleX *= 0.95;
scaleY *= 0.95;
filters = null;
}
private function mouseUp(event:MouseEvent):void {
scaleX = scaleY = _oldScale;
filters = GLOW;
}
private function mouseOut(event:MouseEvent):void {
scaleX = scaleY = _oldScale;
filters = SHADOW;
}
불행히도 이러한 메서드는 전혀 호출되지 않습니다. 순수 플래시/AS3 응용 프로그램에서
나는
addEventListener(MouseEvent.MOUSE_OVER, handleMouseOver);
addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown);
addEventListener(MouseEvent.MOUSE_UP, handleMouseUp);
addEventListener(MouseEvent.MOUSE_OUT, handleMouseOut);
addEventListener(MouseEvent.CLICK, handleMouseClick);
를 호출 할 것입니다 그리고 그것은 잘 작동하지만 여기 플렉스 4.5 나는이 작업을 수행하는 방법을 모르겠어요.
또한 dropShadowVisible = "true" 속성이 있지만 내 용도로 사용할 수 있는지 확실하지 않은 것으로 나타났습니다.
플렉스에서 사용자 지정 구성 요소를 확대/축소 할 수 있는지 잘 모르겠습니까? 아니면 "플렉스 효과"(그러나 어떻게?)를 사용해야하며 disableLayout = "true"을 설정해야합니까? 플렉스 4.5에서 저를 위해 일하고 아래 두 방법 중
컨테이너가 마우스 이벤트를 전달하지 않는다고 확신했습니다. 실제 UI 컨트롤이 필요합니다. 그러나 UI 컨트롤이 이벤트를 버블 링하면; 컨테이너에 리스너를 추가 할 수 있어야합니다. – JeffryHouser
이 경우 이벤트 리스너를 추가 했습니까? 어쨌든 당신이 actionscript를 사용하고 있기 때문에 flex에서도 그렇게 할 수 있습니다. – Mansuro