2008-09-16 27 views
13

Tôi mới sử dụng ActionScript 3 và đã gặp sự cố:Nguyên nhân gây lỗi Flash # 2012 (Không thể khởi tạo lớp học)?

Sử dụng Flex Builder 3, tôi đã tạo một dự án với một vài lớp đơn giản. Nếu mã trong lớp A tạo một đối tượng của lớp B (lớp B là trong tập tin nguồn riêng của mình) sau đó mã biên dịch tốt, nhưng tôi nhận được lỗi thời gian chạy sau:

ArgumentError: Error #2012: B class cannot be instantiated.

Ai đó có thể giải thích những gì tôi làm sai?

Cập nhật: Vui lòng xem câu trả lời của riêng tôi bên dưới (Tôi không thể bỏ phiếu từ đầu cho đến khi tôi chưa đăng ký).

Trả lời

0

Nó có giá trị lưu ý rằng nếu bạn đang bao gồm các lớp mà người khác đã tạo và họ đã sử dụng Flash CS3 và bạn đang sử dụng Flex hoặc ngược lại, e thư viện cốt lõi của mỗi khác nhau và một số điều không được bao gồm trong cả hai. Kiểm tra hai tài liệu tham khảo để đảm bảo:

CS3: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/

Flex: http://livedocs.adobe.com/flex/2/langref/

21

Cuối cùng tôi nhận ra những gì đã sai: Class B được subclassing từ DisplayObject mà tôi bây giờ nhìn thấy là một lớp trừu tượng. Lớp B đã không thực hiện các thành viên trừu tượng, do đó lỗi. Có lẽ tôi sẽ thay đổi lớp B thành phân lớp từ Sprite thay thế.

Điều này có vẻ giống như một vấn đề đáng lẽ phải bị trình biên dịch bắt. Thực tế là việc triển khai các thành viên trừu tượng có nghĩa là không thể chờ đợi cho đến khi thời gian chạy? Mặc dù vậy, nó sẽ được tốt đẹp để ít nhất có được một cảnh báo trình biên dịch.

Cảm ơn câu trả lời của mọi người, hy vọng họ sẽ giúp những người khác gặp lỗi 2012.

+1

Nó không thể bị trình biên dịch bắt vì không có từ khóa trừu tượng mà trình biên dịch có thể chọn. Nó được thực thi bằng cách ném, do đó lỗi. – NebulaFox

Các vấn đề liên quan