2009-09-21 39 views
16

Tôi đang làm việc với một dự án Flash rất phức tạp, là một phần của một loạt các dịch vụ mà chúng tôi triển khai cho việc sử dụng các khách hàng của mình. Đối với hầu hết các nguồn phần mềm của chúng tôi (Java, PHP, Javascript, HTML và một số tập lệnh hỗ trợ bằng các ngôn ngữ khác), chúng tôi sử dụng phiên bản phụ để quản lý và kiểm soát phiên bản, vì vậy chúng tôi làm tương tự cho các dự án Flash của chúng tôi, mặc dù chúng tôi nhận được rất ít lợi ích từ phiên bản kiểm soát điều đó (ngoại trừ việc có thể hoàn nguyên về các phiên bản trước) vì các tệp FLA được lưu trữ dưới dạng các tệp nhị phân mà chúng tôi không thể nhận được sự khác biệt có ý nghĩa.Kiểm soát phiên bản cho các dự án Adobe Flash

Chúng tôi đang đưa nhiều mã như chúng tôi có thể vào các tệp AS mà chúng tôi có thể quản lý bằng cách sử dụng subversion, nhưng do yêu cầu của kiến ​​trúc và chiến lược triển khai của chúng tôi (cả hai chúng tôi không thể thay đổi vì nhu cầu của khách hàng) vẫn duy trì một bộ sưu tập lớn các tệp FLA mà chúng tôi cần quản lý.

Tôi đã xem Adobe Version Cue và trong khi tôi thực sự không hiểu điều gì về điều khiển phiên bản, việc di chuyển các dự án Flash của chúng tôi sang phiên bản Cue sẽ cho tôi kiểm soát tốt hơn không?

Ngoài ra - nếu mọi người có thể chia sẻ kinh nghiệm và đề xuất của họ về việc kiểm soát phiên bản các dự án Flash, nó sẽ rất hữu ích.

Trả lời

15

Tôi đã vật lộn với điều này bản thân mình, và tôi không thể nói với bạn bất cứ điều gì khác hơn là:

  1. Không có mã trong flas, từng
  2. nội dung ngữ nghĩa Divide vào flas riêng biệt, nơi thích hợp
  3. Make tài liệu thay đổi cho FLA và nhập ghi chú cho mọi thay đổi.

Điểm đầu tiên là hiển nhiên đủ. Thứ hai là nhận ra rằng không có gì xung quanh thực tế là FLA là các đốm màu nhị phân giữ tất cả nội dung hình ảnh của bạn và không chơi tốt với phiên bản, nhưng bạn có thể nhận ra thực tế là một số nội dung thay đổi thường xuyên trong khi các nội dung khác có xu hướng được tạo một lần và sau đó bỏ lại một mình. Bằng cách chia nội dung của bạn thành các FLA khác nhau, bạn có thể giữ phần lớn thay đổi thành một số lượng nhỏ FLA không ổn định và sự khác biệt giữa nội dung ổn định và không ổn định sẽ được phản ánh trong tệp được phiên bản của bạn.

Lưu ý rằng ngay cả khi bạn không thể tải nội dung khi chạy, tính năng chia sẻ thời gian biên dịch vẫn cho phép bạn chia nội dung thành số lượng FLA tùy ý. (Chia sẻ thời gian biên dịch thường bị bỏ qua - nếu bạn không quen thuộc với nó, hãy mở thuộc tính của MovieClip và kiểm tra phần "Nguồn" ở dưới cùng.) Cách chia mọi thứ sẽ phụ thuộc vào dự án của bạn. Điều tốt nhất tôi có thể đề nghị là phân chia ngữ nghĩa - có lẽ một FLA cho mỗi ký tự, hoặc một FLA cho mỗi phần, hoặc một FLA cho mỗi phần tử giao diện, v.v.

Điểm thứ ba là, vì các khác biệt là không thể, không có cách nào để giữ tài liệu thay đổi. Cách ưa thích của tôi là kiểm tra các bản FLA thành phiên bản và lưu ý tất cả các thay đổi trong ghi chú đăng ký, nhưng những thay đổi cũng có thể nằm trong một tài liệu riêng biệt. (Lưu ý rằng điều quan trọng là bạn giữ các thư viện trong mỗi lệnh FLA một cách có trật tự, hoặc ai đó đọc mô tả thay đổi sẽ gặp khó khăn trong việc tìm kiếm thay đổi.) Tuy nhiên, vì điều này có thể gây đau cho một số nội dung, nên chỉ định một số FLA nhất định là " không ổn định "và không bận tâm với danh sách thay đổi. Nhưng nếu các tệp như vậy có nhiều phụ thuộc vào các tệp khác, bạn sẽ hối tiếc sau.

Thật không may, đây là tất cả những gì tôi đã khám phá cho đến thời điểm này. Adobe đã nói về việc thay đổi định dạng FLA dựa trên văn bản trong một phiên bản tương lai, nhưng cho đến khi nó đến, không có giải pháp dễ dàng nào.

+0

Ghi chú của bạn rất hữu ích, cảm ơn. Không có cách nào tôi sẽ có được các nhà phát triển để duy trì một tài liệu thay đổi - nó sẽ được quá nhiều chi phí và không ai sẽ làm điều đó (nghiêm túc hoặc ở tất cả). Mục đích của tôi là để có được quyền kiểm soát mà không tăng chi phí phát triển. Tôi có đủ thời gian để mọi người viết những bình luận có ý nghĩa trong cam kết của họ :-( Nhật ký thay đổi có thể là tài liệu thay đổi tốt nếu không thực tế là các tệp có xu hướng bị phản đối, xóa và thay thế bằng mã mới – Guss

+0

Vâng, bạn phải làm việc với những gì bạn làm việc với Tôi không giữ tài liệu thay đổi chi tiết cho đến khi một tệp được hoàn thiện nhiều hơn hoặc ít hơn - vì vậy tôi chỉ ghi lại các thay đổi và sửa lỗi, chứ không phải là phát triển ban đầu. tốt - như tôi đã nói, đó là nơi tôi ghi lại những thay đổi của tôi – fenomas

+0

Cảm ơn fenomas - Tôi sẽ chấp nhận câu trả lời của bạn bởi vì (a) các chi tiết nhất và .. tốt nhất .. (b) không có ai đến với một điều gì đó mới mẻ trong một thời gian, và (c) - Tôi đang loại bỏ khỏi toàn bộ vấn đề ... – Guss

1

Từ những gì tôi hiểu về Adobe Version Cue, nó sẽ không giúp bạn vượt qua những gì svn mang lại cho bạn. (Cấp, tôi chỉ nghe những câu chuyện kinh dị của Version Cue và chưa thực sự sử dụng nó.)

Đã làm việc trên các dự án Flash lớn với svn trước đây (nhóm lớn và triển khai lớn), lời khuyên tốt nhất mà tôi có thể cung cấp bạn là:

  • Được rồi, khách hàng của bạn đang yêu cầu tất cả các FLA này, nhưng tại sao? Bạn có thể đã làm điều này rồi, nhưng hãy thử đẩy lùi yêu cầu kỹ thuật của họ một chút - họ nghĩ họ đang đạt được gì từ yêu cầu này?

  • Chỉ định MỘT người làm người quản lý phát hành cho ứng dụng Flash. Họ sẽ chịu trách nhiệm kiểm tra mã thích hợp từ svn, xây dựng nó và đảm bảo nó được đưa vào triển khai ứng dụng chung. Họ cũng sẽ phản ứng để biết được bản sửa đổi nào là trong môi trường nào (điều này có thể dễ dàng được tự động hóa).

  • Đặt càng ít mã và nội dung trong FLA càng tốt. Bạn nên tải hình ảnh và các nội dung khác từ các nguồn bên ngoài và sau đó đính kèm chúng vào các MC và Sprites phù hợp.

  • Nếu có thể, hãy giữ cho các đội có khối nhỏ rời rạc. Điều này làm giảm cơ hội của những thay đổi xung đột trong FLA và làm tăng cơ hội của tất cả mọi người biết những gì đang xảy ra.

  • [Thêm ghi chú băng thông, ít liên quan đến câu hỏi này] Xử lý FLA của bạn như thư viện hoặc SDK nếu có thể. Nếu nhu cầu của họ gần với "một tiểu FLA trên mỗi trang" với FLA chính, thì có thêm FLA phụ giữ nội dung/tiện ích con. Bằng cách đó, các trang FLA của bạn chỉ giữ mã cụ thể của trang và bạn không tải lại các tiện ích con mỗi khi bạn "chuyển đổi các trang". (Giả sử không có trình duyệt làm mới giữa các công tắc trang.)

Có thể cần lưu ý rằng đây là những giải pháp không phải là giải pháp kỹ thuật. Tôi chưa tìm thấy một "một shot giết" cho vấn đề làm việc với các tập tin nhị phân trong hệ thống kiểm soát sửa đổi - đặc biệt là các tập tin nhị phân mà thực sự là mã nguồn. Và đó thực sự là móc sắt: ý tưởng lưu trữ mã nguồn theo định dạng nhị phân độc quyền, chỉ được biên dịch thành một định dạng độc quyền khác, là voodoo xấu.

+0

Cảm ơn câu trả lời.Đối với các yêu cầu về FLA - yêu cầu của nó đối với một số namin g quy ước cho các tệp SWF đầu ra, mà khách hàng của chúng tôi gọi biểu mẫu mã của họ và chúng tôi không thể thay đổi kiến ​​trúc triển khai do yêu cầu về khả năng tương thích ngược. – Guss

2

Có vẻ như bạn đang bị mắc kẹt với các tập tin FLA do yêu cầu bên ngoài, nhưng chỉ trong trường hợp ...

Nếu bạn đang xây dựng một dự án đèn flash mã nặng, tôi sẽ đi với một actionscript tinh khiết hoặc flex phương pháp tiếp cận, chỉ sử dụng các tệp .fla cho những gì chúng phù hợp (hoạt ảnh dựa trên dòng thời gian)

Trình tạo Flex/Flash Builder là một môi trường tuyệt vời để xây dựng các dự án Flash nơi tất cả các mã đều ở định dạng tệp thân thiện với nguồn kiểm soát.

Chúng tôi đang trong quá trình di chuyển tất cả các trình phát phương tiện dựa trên FLA của chúng tôi sang MXML (nơi các thành phần giao diện người dùng Flex hữu ích) và các dự án ActionScipt thuần túy. Lợi ích kiểm soát nguồn của Thje rất lớn.

Nếu điều đó là không thể thì tôi sợ điều duy nhất bạn có thể làm là di chuyển càng nhiều thứ ra khỏi FLAs càng tốt - định dạng nhị phân đơn giản là không kiểm soát nguồn thân thiện.

Quên phiên bản cue - Adobe không phát triển nó nữa (Nó không bao gồm trong gói CS5 mới)

1

Tôi đã cố gắng tìm ra một cách để giải quyết vấn đề này cùng, đây là một thể dung dịch. .fla là các hệ thống tệp thực tế. Nếu bạn thay thế phần mở rộng .fla bằng .zip, bạn có thể giải nén và hiển thị các tệp không nén không giống như 'hiển thị nội dung gói' trên máy mac. Tất cả các nội dung thư viện nằm bên trong một thư mục thư viện với mỗi movieclip đại diện bởi một tài liệu xml mỗi lớp nhận được một nút và các khung trong một lớp được biểu diễn như các nút con. Ngoài ra còn có một tệp .xfl là phiên bản không nén của .fla mà bạn có thể khởi chạy trong flash miễn là bạn có tất cả nội dung đã giải nén của tệp .fla nằm trong cùng thư mục với .xfl

Về mặt kỹ thuật bạn sẽ có thể làm việc trên tệp .xfl với tất cả các nội dung thư viện đang được theo dõi và duy trì trong phiên bản lật đổ.

11

Câu trả lời của Adobe cho điều này là trong CS5 Flash mới. Sử dụng "lưu dưới dạng" và chọn .xfl từ các loại kéo xuống. Bây giờ bạn có thể làm việc trên dự án của bạn và kiểm tra nó thông qua SVN. Tôi vẫn sẽ phá vỡ mã của bạn trong các tệp .as nhưng cách này tài sản thư viện của bạn cũng được theo dõi. Nó về cơ bản giữ tất cả mọi thứ trong xml đánh dấu kinda như flex mxml. Tôi nghĩ đây là lựa chọn tốt nhất của bạn.

+0

Cảm ơn, tôi không biết điều này. –

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