Flex 애플리케이션 내에서 사용할 클래스를 어떻게 가져오나요?
-
09-06-2019 - |
문제
Flex 애플리케이션 내에서 사용하고 싶은 클래스를 정의하는 액션스크립트 파일이 있습니다.
액션스크립트 파일에 일부 사용자 정의 컨트롤을 정의한 다음 애플리케이션 태그를 통해 가져왔습니다.
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:scorecard="com.apterasoftware.scorecard.controls.*"
...
</mx:Application>
하지만 이 코드는 Flex 구성 요소가 아니라 수학 루틴을 수행하기 위한 라이브러리입니다. 이 클래스를 어떻게 가져오나요?
해결책
스크립트 태그 내에서 클래스를 가져와야 합니다.
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
import com.apterasoftware.scorecard.controls.*;
// Other imports go here
// Functions and other code go here
</mx:Script>
<!-- Components and other MXML stuff go here -->
<mx:VBox>
<!-- Just a sample -->
</mx:VBox>
</mx:Application>
그러면 스크립트 태그의 다른 곳에서 해당 클래스를 참조할 수 있습니다.클래스 작성 방법에 따라 MXML 내에서 바인딩을 사용하지 못할 수도 있지만 이를 처리하기 위해 고유한 코드를 정의할 수 있습니다.
네임스페이스 선언은 다른 MXML 구성 요소를 가져오는 데에만 사용됩니다.AS 클래스는 스크립트 블록이나 다른 AS 파일 내에서 import 문을 사용하여 가져옵니다.
다른 팁
@헴스:좀 더 명확하게 설명하자면, MXML을 사용하여 AS 클래스를 인스턴스화할 때 네임스페이스 선언을 사용하여 AS 클래스를 "가져올" 수도 있습니다.
예를 들어 AS에서 완전히 작성한 사용자 정의 시각적 구성 요소가 있다고 가정해 보겠습니다. com.apterasoftware.scorecard.controls.MathVisualizer
.MXML 내에서 사용하려면:
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:aptera="com.apterasoftware.scorecard.controls.*">
<aptera:MathVisualizer width="400" height="300" />
</mx:Application>
제휴하지 않습니다 StackOverflow