Tôi đang phát triển một khung mocking động cho Flex/AS3 và đang gặp sự cố với các loại hỗ trợ/riêng tư (ví dụ: các gói được khai báo bên ngoài gói {} trong tệp lớp).Phân lớp một lớp riêng tư (hỗ trợ) trong AVM2
Trong tệp "ABC" của tôi, tôi khai báo cá thể có cờ PROTECTED_NAMESPACE và với tên đa cấp PRIVATE_NS. Tôi cũng đã thử nghiệm cho nó cùng một không gian tên như lớp nó là phân lớp con (ví dụ: PRIVATE_NS ("ContainerClass.as $ 123")).
Không có vấn đề gì tôi làm, tôi luôn nhận được lỗi sau đây sau khi loadBytes:
VerifyError: Error #1014: Class ContainerClass.as$123::PrivateClass could not be found.
tôi đã thử nghiệm với tải bytecode tạo vào ApplicationDomain giống như lớp riêng (tôi sử dụng tên miền con theo mặc định). Tôi thậm chí đã cố gắng đăng ký một bí danh lớp trước khi tải (mặc dù đó là một chút căng).
Tôi có quên mất bất cứ điều gì hoặc đơn giản là hạn chế AVM không?
Xin lưu ý rằng tôi hoàn toàn biết rằng điều này là bất hợp pháp trong ActionScript 3.0, tôi đang tìm kiếm liệu điều này có thực sự có thể có trong AVM hay không.
Chỉnh sửa: Đối với những người quan tâm đến công việc cho đến nay, dự án là asmock và nằm trên sourceforge.
Tôi thực sự đã phát triển một khuôn khổ proxy động và nó hoạt động tốt (với các lớp/giao diện gói). Tính năng nổi bật duy nhất của khung công tác là chế nhạo các lớp 'riêng tư' (được khai báo bên ngoài gói). –
Wow, sau đó tôi thực sự phải kiểm tra điều đó! Tôi giả sử bạn không làm điều này với các khả năng tiêu chuẩn AS3? –
Thực ra, tôi chỉ sử dụng Loader.loadBytes().Tạo một SWF/ABC động khi chạy là phần phức tạp;) –