프로그래밍 방식의 로직을 MXML 속성에 삽입해야합니까? 몇 가지 단추 또는 관련 구성 요소 (예 : DataGrid
또는 List
)의 상태를 기반으로 이벤트를 발송하지 않을 수도 있고 논리가 이벤트 속성 중 하나에 간단하게 포함 할 수있을만큼 간단한 지 알아 내려고하고 있습니다. MXML 여기Flex MXML 속성에 얼마만큼의 로직을 포함해야합니까?
내가 일을 봤는데 방법은 다음과 같습니다
이 예에서<mx:Script>
<![CDATA[
private function sendEvent1():void {
if (list.selectedIndex != -1) {
dispatchEvent(new Event("click!"));
}
}
]]>
</mx:Script>
<mx:List id="list" dataProvider={listData} />
<mx:Button label="Click!" click="sendEvent1()" />
는 스크립트 태그에 포함 된 ActionScript는 이벤트가 전달되어야하는지 여부를 결정하는 논리가 포함되어 있습니다. 데이터 공급자에 대한 코드 누락이 조각에 명백한 문제 (예 : 정적 문자열의 일부를 무시
<mx:Button label="Click!" click="if (list.selectedIndex != -1) dispatchEvent(new Event("click!")" />
:
버튼은, 그러나, sendEvent1
기능에 대한 필요성을 제거, 조금 수정 될 수 있습니다 등), 내가 두 번째 예제가 몇 가지 문제가 있습니다 :
- MXML 덜 읽을 수 있습니다 (이것은 더 함수 호출로
- 은 클릭에 필요한) 길고 복잡 도착 버튼을 사용하면 MXML의 로직이 훨씬 다루기 힘들어집니다.
- MXML에 로직을 포함 시키면 직관력이 떨어집니다 (적어도 나에게는). MXML의 논리를 알고 싶다면 ActionScript가 필요한
Script
태그를 더보고 싶습니다.
논리를 MXML 속성에 삽입하는 데있어 다른 장점이 있습니까? 나는이 사용법을 점점 더 자주 보았고, 나는 내가 어떻게 일을하고 있었는지를 바꿀 강력한 이유를 놓치지 않고 싶습니다.
귀하의 우려 사항에 동의합니다. MXML에서 직접 이벤트에 로직을 추가함으로써 얻을 수있는 이점은 빠른 프로토 타이핑을위한 것입니다. 예를 들어 코드를 직접 읽는 것을 선호하지만 함수에 대한 더 나은 이름을보고 싶습니다. ;) – tylermac
예, 코드 스 니펫에 대한 빠른 타이핑은 일반적으로 진부한 함수 이름과 ID를 발생시킵니다. 실제 코드는 더 나은 명명 규칙을가집니다;) 여러분의 생각에 감사드립니다! – bedwyr