Flex/AS3 용 동적 조롱 프레임 워크를 개발 중이며 개인/지원 유형 (예 : 클래스 파일의 {} 패키지 외부에 선언 된 클래스)에 문제가 있습니다.AVM2의 개인 (지원) 클래스 서브 클래 싱
내 ABC "파일"에서 PROTECTED_NAMESPACE 클래스 플래그 및 PRIVATE_NS 다중 이름을 사용하여 인스턴스를 선언합니다. 또한 서브 클래 싱하는 클래스와 동일한 네임 스페이스를 제공하는 것으로 실험했습니다 (예 : PRIVATE_NS ("ContainerClass.as $ 123")).
상관없이 내가 뭘, 난 항상 같이 loadBytes 후 다음과 같은 오류 얻을 : 나는 개인 클래스와 동일한의 ApplicationDomain에 생성 된 바이트 코드를로드와 함께 실험을
VerifyError: Error #1014: Class ContainerClass.as$123::PrivateClass could not be found.
(나는 기본적으로 하위 도메인을 사용합니다). 나는로드 전에 class alias를 등록하려고 시도했다.
나는 무엇인가를 잊어 버렸습니까? 아니면 단순히 AVM의 제한입니까?
ActionScript 3.0에서는이 방법이 불법이라는 것을 완전히 알고 있습니다. AVM에서 이것이 실제로 가능한지 여부를 찾고 있습니다.
편집 : 작품에 관심있는 사람들을 위해 지금까지,이 프로젝트는 asmock이며, 소스 포지 (SourceForge)에 있습니다.
저는 실제로 동적 프록시 프레임 워크를 개발했으며 잘 작동합니다 (패키지 클래스/인터페이스 사용). 프레임 워크의 유일한 주요 특징은 '패키지'외부에서 선언 된 '개인'클래스 조롱입니다. –
와우, 그 다음 나는 그것을 실제로 확인해야합니다! 표준 AS3 기능을 사용하지 않았다고 가정합니다. –
사실 저는 Loader.loadBytes()를 사용하고 있습니다.런타임에 동적 SWF/ABC 생성은 까다로운 부분이었습니다.) –