에서 메인 mxml에 액세스하여 웹 서비스 호출을 처리하는 actionScript 클래스를 작성합니다. 결과를 검색 할 때 주 mxml 응용 프로그램에서 setter 메서드를 호출하려고합니다. 내 문제는 내가 내 ActionScript 스크립트 클래스, 내 아이디어에서 내 주요 mxml 클래스의 actionScript 섹션에있는 메서드에 액세스하는 방법을 모른다는 것입니다?플렉스 3는 액션 스크립트 코드
답변
David는 맞습니다. Application.mxml 객체의 public 멤버에 정적으로 액세스 할 수 있고 응용 프로그램의 어느 위치에서나 액세스 할 수 있지만 디자인 적으로는 no-no입니다. 객체 간의 느슨한 결합을 위해 노력하는 것이 좋습니다. 일반적으로 Flex 관용구에서 수행되는 방식은 EventDispatcher를 확장하고 이벤트를 전달하는 것입니다. 이 같은
public class MyWrapperClass extends EventDispatcher
{
[Event(name="webserviceComplete", type="flash.events.Event")]
public function MyWrapperClass(target:IEventDispatcher=null)
{
super(target);
}
private function handleWebServiceLoadComplete(event:ResultEvent):void
{
dispatchEvent(new Event("webserviceComplete"));
}
public function doWork():void
{
// Load the service, etc., and ultimately call handleWebServiceLoadComplete()...
}
}
...하고 Main.mxml 파일 : 그래서 예를 들어, WebService에 래퍼 이런 식으로 뭔가 보일 수 있습니다이 경우
<mx:Script>
<![CDATA[
private function app_creationComplete(event:Event):void
{
var myWrapper:MyWrapperClass = new MyWrapperClass();
myWrapper.addEventListener("webserviceComplete", mywrapper_webServiceComplete, false, 0, true);
myWrapper.doWork();
}
private function mywrapper_webServiceComplete(event:Event):void
{
// Do the work you would've otherwise done in the public method
}
]]>
</mx:Script>
을, 최종 결과는 동일합니다 - - 웹 서비스로드를 완료하면 Main.mxml의 함수가 트리거됩니다. 그러나 mywrapper_webServiceComplete()
이 개인적으로 선언되는 방법에 주목하십시오. MyWrapperClass
에 의해 직접 호출되지는 않습니다. Main.mxml은 MyWrapperClass가 작업을 마쳤을 때 알림을 받기 위해 간단히 (addEventListener()
을 사용하여) 구독 한 다음 자체 작업을 수행합니다. MyWrapperClass는 Main.mxml의 구현에 대한 세부 사항을 전혀 알지 못하며, Main.mxml은 webserviceComplete
이벤트를 전달하고, doWork()
공개 메서드를 노출한다는 것 이외의 MyWrapperClass에 대해 아무것도 알지 못합니다. 느슨한 커플 링 및 정보 숨기기.
행운을 빈다.
클래스가 구성 요소 트리에 추가 된 UIComponent 인 경우 해당 parentApplication
특성을 사용할 수 있습니다. 그렇지 않으면 응용 프로그램 초기화가 완료된 후에 만 정적 Application.application
속성을 사용하십시오. 그보다 앞서 필드는 null
입니다. 개인 필드와 메소드는 분명히 액세스 할 수 없습니다. 명시적인 id
로 MXML 부분에서 선언 된 요소는 public입니다.
그런 호출을 추가하면 고정 바인딩이 만들어집니다. 대신 이벤트를 보내고 주 응용 프로그램에서이 이벤트를 처리하는 것이 좋습니다.
경우 사람이 같은 문제가 있습니다
mx.core.FlexGlobals.topLevelApplication.YOUR_FUNCTION
하면 main.mxml 내에서 공공 기능에 액세스 할 수있는 구문입니다.
- 1. 플렉스/액션 스크립트 코드 하이 라이터
- 2. 플렉스/액션 스크립트 코드 건조/리팩터링
- 3. 플렉스, 액션 스크립트
- 4. 플렉스/액션 스크립트 - 스크린 DPI
- 5. red5 액션 스크립트 코드 예
- 6. 플렉스/액션 스크립트 - 예에 대한 유형 기능
- 7. 플렉스 액션 스크립트 확장 DateChooser, 캘린더 이벤트
- 8. 플렉스/액션 스크립트 이미지 표시 문제
- 9. 플렉스 플래시 액션 스크립트 양식 이벤트
- 10. 플렉스/액션 스크립트 유형 오류 # 1034
- 11. 지원되지 않는 샘플링 플렉스/액션 스크립트
- 12. 액션 스크립트 오류
- 13. 액션 삼항 연산자는 액션 스크립트
- 14. 자바 스크립트 이벤트 양식을 구독하는 방법 플렉스 3 액션 스크립트 코드?
- 15. 플래시 액션 스크립트 함수의 Objective-C 코드
- 16. RemoteObject에의 액션 스크립트 코드 대신 MXML
- 17. ObjectScript-C와 동등한 액션 스크립트 코드
- 18. 찾기 아이 컨트롤 플렉스/액션 스크립트에서 액션
- 19. 액션 스크립트 2 대 액션 스크립트 3
- 20. 포스트 액션 스크립트 액션 스크립트 API를 사용하여
- 21. 액션 스크립트 배열 포함
- 22. 액션 스크립트
- 23. 액션 스크립트
- 24. 플렉스 빌더 3 코드 힌트
- 25. 플렉스 액션 스크립트에서 배열 데이터 내보내기
- 26. 플렉스 플렉스
- 27. 액션 스크립트 트릭
- 28. 액션 스크립트 3/플렉스 빌더 3 : 다이어그램 만드는 법
- 29. 플렉스 액션 스크립트 프로젝트에 플래시 에셋을 내장하는 효율성
- 30. 어도비 플렉스/액션 스크립트 - 배열 컬렉션의 최소 최대