2012-08-07 5 views
2

로더 구성 요소가있는 응용 프로그램에 외부에서로드 된 swf가 있습니다. 내 로더의 응용 프로그램 도메인에로드됩니다. 그 클래스에서 확장하고 일부 함수를 재정의하려는 클래스가 있습니다. 어떻게 든 가능할까요? 여기 내가 원하는 것을 설명하는 몇 가지 코드입니다 (물론, 그것은 완전히 잘못된 것입니다 및 고원 작동하지) : 로드 된 swf 내부 클래스를 확장하는 방법

public var ClassFromLoadedSwf:Class = ApplicationDomain.currentDomain.getDefinition("path.to.needed.class") as Class; 
public class MyClass extends ClassFromLoadedSwf 
{ 
    override protected function initMovie() : void 
    { 
     //function logic goes here 
    } 
} 

내 나쁜 영어에 대한 귀하의 답변을 주셔서 감사하고 죄송합니다.

답변

8

아니요. 기본적으로 ApplicationDomain의 의미를 이해하지 못합니다. 로더와 응용 프로그램 도메인을 사용하면 런타임에 SWF에 일부 코드를 병합 할 수 있습니다. 런타임 상태에 도달하기 전에는 액세스 할 수 없습니다. 그래서 컴파일 시간에 지금하려는 일을 할 수 없습니다. 그러나 SWF 대신 SWC를 사용할 수 있습니다. 프로젝트 라이브러리에 포함 시키면됩니다. 컴파일 할 때 모든 클래스에 액세스 할 수 있습니다. Article을 읽어보십시오. SWC의 의미를 이해하는 데 도움이됩니다.

+0

답장을 보내 주셔서 감사합니다. 나는 이것을 할 수 없다는 것을 알아 냈다. 그러나 동일한 패키지 경로로 내 자신의 클래스를 구현 한 다음로드 된 swf가 클래스를 사용하는 대신 사용하게된다. Unfortunatelly 원격 서버에서로드하는 동안로드 된 swf의 코드를 수정하거나 액세스 할 수 없습니다. – CodeDemen

+0

다른 SWF의 클래스가 확장되어 해당 인터페이스를 데이터 유형으로 사용하는 인터페이스를 작성할 수 있습니다. 다른 swf 클래스가 필요합니다. – Gio

관련 문제