2008-10-21 4 views
0

저는 프로그래밍에 익숙하지는 않지만 Flex를 처음 접했습니다. 포커스를받을 때 모든 텍스트 입력 상자에서 호출 할 일반 이벤트 핸들러를 작성하고 싶습니다. 포커스가있는 경우 텍스트 입력 상자의 색상을 변경하고 싶습니다. 초점이 사라지면 "비활성"색상 프로파일을 복원하려고합니다. 각 textinput 상자에 대해 ActionScript 이벤트 핸들러를 작성할 수는 있지만 그 모두가 절름발이라는 것을 알고 있습니다. : o) 그러면 필요한 것은 이벤트 처리기를 호출하는 객체에 액세스하는 것입니다.Flex/Actionscript3에서 일반 속성 수정 기능을 작성하려면 어떻게해야합니까?

Delphi에서 Sender 개체를 전달하는 함수를 작성하여 호출 개체의 속성에 액세스 할 수있게했습니다. 나는 ActionScript/Flex가 완전히 다른 아키텍처를 가지고 있다고 생각합니다. 따라서이 작업을 수행하는 데 어려움이 있습니다.

감사합니다.

답변

1

당신의 TextInput를 서브 클래스하고 거기에 초점 이벤트를 처리해야합니다. 복잡한 코드가 없어도 찾고있는 것을 얻을 수있는 가장 간단한 방법이라고 생각합니다.

1

나는 당신이 무엇을 요구하고 있는지 이해하고 싶습니다 ... 당신은 이벤트 위임에 대해 이야기하고 있습니까?

은 나를 위해 일한 :

// 'focusOut' for blur 
stage.addEventListener('focusIn', function(e:Event):void { 
    // The focused control is e.target 
}); 
0

초점을 맞춘 입력 상자의 모양을 변경하려면 focusSkin 속성을 설정하여이 작업을 수행 할 수 있습니다. 이것을 전역 적으로 원하면 CSS 파일에 스타일 선언을 넣을 수 있습니다.

이 CSS 예제에서는 기본 focusSkin (mx.skins.halo.HaloFocusRect)을 포함 된 PNG 파일로 바꿉니다.

TextInput { 
    focusSkin: Embed(source="focus.png"); 
} 

의 TextInput은 포커스 스킨 (focusAlpha 속성)의 불투명도를 변경하는 등, 초점의 모양을 변경하기위한 몇 가지 속성을 가지고있다. 자세한 내용은 TextInput documentation을 확인하십시오.