2012-02-03 29 views
6

Tôi đang tạo một thư viện trong AS3. Bên trong thư viện, tôi sử dụng một loạt các lớp/gói mà không cần phải tiếp xúc với người dùng cuối của lib của tôi. Tôi chỉ muốn phơi bày một trong những lớp học này.Làm thế nào để đóng gói thư viện trong ActionScript3 (tương đương .jar?)

Tôi đoán câu hỏi của tôi là:

1) Thư viện thường được phân phối trong AS3 như thế nào?

2) Có tương đương .jar trong AS3 mà nhà phát triển có thể đưa vào hay không, nhưng sẽ chỉ có quyền truy cập/kiến ​​thức về các lớp mà tôi đã khai báo là công khai?

Cảm ơn!

+0

@see: http://stackoverflow.com/questions/6041832/what-is-the-best-way-to-distribute-as3-classes-and-packages/6045196#6045196 – JonnyReeves

Trả lời

5

Thư viện AS3 được gọi là SWC. Giống như JAR, chúng chỉ là lưu trữ ZIP với một số siêu dữ liệu đi kèm. Bạn có thể xây dựng thư viện bằng cách sử dụng các dự án thư viện Flash Builder hoặc trình biên dịch mxmlc trong Flex SDK được mô tả ví dụ here.

Thực hành tốt là phân phối SWC hoặc mã nguồn. Với tài liệu hoặc tập tin readme tất nhiên.

+0

Có thể tạo Tệp SWC mà không sử dụng khung Flex? Tôi chỉ muốn barebone AS3. –

+0

nó không phải là, trừ khi bạn có Flash IDE. – Lucas

+4

@AndyHin, bạn cần trình biên dịch Flex để xây dựng SWC, nhưng bạn không phải bao gồm khung công tác Flex (nó sẽ không là nếu bạn không tham chiếu đến nó trong mã của bạn). –

3

Có thể tạo tệp SWC mà không cần sử dụng khung Flex không? Tôi chỉ muốn xương trần AS3.

Có, chúng tôi không buộc phải sử dụng flex, trên thực tế Adobe thậm chí không hỗ trợ Flex như sản phẩm của họ chính thức nữa vì bây giờ nó là dự án apache nguồn mở. Trình biên dịch cho flash là nguồn mở và miễn phí để sử dụng, đó là lý do tại sao có nhiều IDE và công cụ phát triển của bên thứ ba cũng có thể tạo ra các thư viện SWC. Trình biên dịch chỉ yêu cầu một tệp xml đặc biệt trong một zip để tạo một swc. Vì vậy, nếu bạn muốn tránh làm điều này bằng tay để spec của nó chỉ là vấn đề lựa chọn một cách gui để làm điều này.

Một trong những cách mã nguồn mở phổ biến nhất mà tôi tin là Flash Develop http://www.flashdevelop.org/ có plugin để thực hiện những gì bạn muốn. http://www.flashdevelop.org/community/viewtopic.php?f=4&t=2987 IDE này là rất khuyến khích nhưng nếu bạn cần một cái gì đó nhiều hơn nền tảng, tôi khuyên bạn nên Intellij Idea đó là một lớn as3 và java ide, vì bạn biết những gì các tập tin jar được.

"chỉ có quyền truy cập/kiến ​​thức về lớp tôi đã khai báo là công khai?"

Các lớp trong SWC của bạn sẽ không khác với dự án chính của bạn, do đó nếu bạn tạo swc ở chế độ công khai hoặc riêng tư thì sẽ công khai hoặc riêng tư theo cùng một cách. Thành thật mà nói, hầu hết mã được chia sẻ bởi các blog và kho lưu trữ trong cộng đồng chỉ là các tệp * .as thô, swc là tiện dụng cho các thư viện được chia sẻ trong nhóm và có thể làm cho tổ chức này được tổ chức hơn.

+1

quan tâm, tệp .swc chỉ là một thư mục nén có chứa tệp .swf với mã .as được nhúng và tệp .xml. bạn có thể đổi tên mySwc.swc thành mySwc.zip và sau đó giải nén nó để lộ những nội dung này. ngoài ra, đây là nơi bạn có thể truy cập.swf tập tin để dịch ngược bằng cách sử dụng một trong một số decompilers flash miễn phí, do đó, bằng cách sử dụng .swc như một phương tiện để bảo vệ mã của bạn dễ dàng bị phá vỡ. – TheDarkIn1978

+0

có nó rõ ràng là không được thiết kế để "bảo vệ" mã của bạn. Có vẻ như bảo vệ mã as3 của bạn nói chung chỉ có thể được thực hiện bằng cách làm cho nó khó hơn, không phải không thể cho người khác sử dụng lại. Xem xét các công cụ làm xáo trộn và thay đổi mã swf của mã được biên dịch của bạn. – imp

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