Câu hỏi Flash CS4 từ chối không cho phép


Tôi có một dự án Flash và nó có nhiều tệp nguồn. Tôi có một lớp khá được sử dụng, gọi nó là Jenine. Gần đây tôi (và, có lẽ, một cách thận trọng) đã di dời Jenine từ một không gian tên này sang một không gian tên khác. Tôi nghĩ chúng tôi đã sẵn sàng - tôi nghĩ đã đến lúc rồi. Jenine mới tốt hơn trong mọi cách - cô đã mất một số mã sưng húp, cô đã tự tách mình ra khỏi một vài mối quan hệ lớp học, và cuối cùng cô đã trở về nhà với không gian tên mà cô luôn bí mật biết đến trong trái tim cô. thuộc về. Cô là một trong những người thuộc loại của chính cô.

Thật không may, Flash sẽ không có điều đó. Có lẽ nó đã hình thành một chấp trước. Có lẽ nó không muốn Jenine được tách ra. Dù bằng cách nào, nó bám chặt vào phiên bản cũ, hoàn hảo của Jenine trong ký ức của nó. Nó từ chối tiếp tục. Nó bỏ qua các cuộc gọi (chức năng) của cô ấy. Nó đã cố gắng quên giao diện mới, công khai của cô ấy. Thay vào đó, mọi thể hiện của Jenine mà nó xây dựng luôn là bản sao của phiên bản cũ, xuống đến classpath của nó:

var jenineInstance:Jenine = new Jenine();
trace( getQualifiedClassName(jenineInstance));
// Should print: com.newnamespace.subspace::Jenine
// Prints: com.oldnamespace.subspace::Jenine
// Ah, young love!

Chúng ta đã chiến đấu. Tôi không tự hào về một số điều tôi đã nói hay đã làm. Cuối cùng, trong một cơn giận dữ cao chót vót, tôi đã xóa hoàn toàn tất cả các tham chiếu của Jenine. Cô ấy hoàn toàn, hoàn toàn bị xóa khỏi hệ thống. Con trỏ của tôi rơi xuống tùy chọn menu "Dọn sạch thùng rác" như nắp lạnh của một chiếc quan tài.

Tôi không nghĩ Flash đã từng hồi phục. Cho đến ngày nay nó vẫn bám vào ký ức của Jenine. Những định nghĩa cũ, không hoàn hảo của cô vẫn trôi nổi trong dự án của tôi như những con ma bị bỏ rơi. Bất cứ khi nào tôi buộc Flash phải biên dịch, nó vẫn yêu thích chèn cô ấy vào phim của tôi, nép mình vào định nghĩa của cô ấy trong số những lớp học sống khác, như một ngôi đền nhỏ. Tôi tự hỏi liệu họ có thể nhìn thấy cô ấy không.

Flash và tôi không thực sự nói chuyện nữa. Tôi viết mã của tôi, nó biên dịch nó. Có một cô gái mới trong thị trấn tên là Summer trông gần giống với Jenine, như thể có ai đó vừa sao chép mã nguồn bán buôn của mình vào một lớp mới, nhưng Flash không tỏ ra hứng thú. Hầu hết các ngày nó chỉ mopes xung quanh và viết thơ xấu trong ý kiến ​​của tôi khi nó nghĩ rằng tôi không tìm kiếm.

Tôi hy vọng không có ai khác đã có một trải nghiệm tương tự, rằng đây chỉ là một gợn sóng độc đáo, đau đớn trong đầm phá tối khủng khiếp đó là cơ sở mã Flash. Nếu, bởi một số cơ hội fluke bạn có, hoặc bạn có bất kỳ ý tưởng làm thế nào để xóa bất cứ bộ nhớ cache damn trình biên dịch được sử dụng, xin vui lòng, xin vui lòng giúp đỡ.


2694
2018-02-03 17:32


gốc




Các câu trả lời:


Flash vẫn có tệp ASO, là mã byte được biên dịch cho các lớp của bạn. Trên Windows, bạn có thể xem các tệp ASO tại đây:

C:\Documents and Settings\username\Local Settings\Application Data\Adobe\Flash CS4\en\Configuration\Classes\aso

Trên máy Mac, cấu trúc thư mục tương tự trong /Users/username/Library/Application Support/ 


Bạn có thể xóa các tệp đó bằng tay hoặc trong Flash bạn có thể chọn Control->Delete ASO files để loại bỏ chúng.


694
2018-02-03 18:49



Được sao chép từ bên dưới: Câu trả lời này và câu trả lời khác, rất giống với những gì tôi đang tìm kiếm, nhưng tiếc là dường như không giải quyết được vấn đề. Tôi sẽ viết cái này cho Adobe bug fun tiem. Tôi sẽ đánh dấu nó là giải quyết, tuy nhiên. - Ender
PS: Tôi đã nhấp vào mục trình đơn hơn và hơn. Tôi đã giảm sâu vào cấu trúc tập tin trong một nhiệm vụ để cuối cùng xóa các tập tin có chứa những tiếng vọng cuối cùng của Jenine. Họ không có ở đó. Khi tôi hỏi về họ, Flash chỉ lầm bầm điều gì đó không mạch lạc và nhìn chằm chằm vào không gian. Tôi nghĩ rằng tôi có thể bắt đầu nghe thấy điều gì đó qua cái búa điên rồ của nút chuột của tôi. Jenine đang cười. - Ender
@Ender, bạn có gặp vấn đề tương tự không nếu bạn mới biên dịch mã trên một hộp mới. Giống như một thanh toán mới của mã vào một máy tính mới? Điều này sẽ cho bạn biết có hay không vấn đề với mã hoặc những thứ kéo dài của bạn hệ thống tập tin*. - Jesse Webb


Thử xóa các tệp ASO của bạn.

Các tệp ASO được lưu trữ các phiên bản được biên dịch của các tệp lớp của bạn. Mặc dù IDE tốt hơn rất nhiều khi cho phép lưu trữ cache cũ khi thay đổi được thực hiện, đôi khi bạn phải xóa chúng một cách thủ công. Để xóa các tệp ASO: Kiểm soát> Xóa tệp ASO.

Đây cũng là nguyên nhân của lỗi "I-am-not-see-my-changes-so-let-me-add-a-trace-now-everything-works" được giới thiệu trong CS3.


198
2018-02-03 18:40





Nếu bạn biên dịch nó bằng máy khác thì sao? Một cài đặt mới sẽ là đáng yêu. tôi hi vọng máy của bạn không ghen tị.


164
2018-02-03 20:25





Tôi đã tìm thấy một hành vi có liên quan có thể giúp (có vẻ như vấn đề cụ thể của bạn chạy sâu hơn):

Flash kiểm tra xem tệp nguồn có cần biên dịch lại hay không bằng cách xem dấu thời gian. Nếu phiên bản được biên dịch của nó là lớn hơn so với tệp nguồn, nó sẽ biên dịch lại. Nhưng nó không kiểm tra xem phiên bản đã biên dịch có được tạo ra từ cùng một tệp nguồn hay không.

Cụ thể, nếu bạn có tệp hành động dưới sự kiểm soát phiên bản và bạn Hoàn nguyên thay đổi, tệp được hoàn nguyên thường sẽ có dấu thời gian cũ hơn và Flash sẽ bỏ qua nó.


125
2018-02-03 18:04



Đúng, tôi làm việc trên một số dự án với các nhà phát triển từ Nam Phi và London. Khi chúng tôi đưa các tệp flash qua lại, chúng tôi phải lưu tệp cục bộ, khi biên dịch sẽ gây ra lỗi điên rồ dựa trên dấu thời gian của tệp. Về cơ bản, cố gắng biên dịch một flash được lưu trong tương lai là vấn đề. Chúng tôi đã tìm ra bằng cách thay đổi ngày của chúng tôi trên hệ điều hành của chúng tôi. Hãy thử kiểm tra dấu thời gian của bạn. - Dominic Tancredi


Ngoài ra, để sử dụng lớp không gian tên mới của bạn, bạn cũng có thể làm

var jenine:com.newnamespace.subspace.Jenine = com.newnamespace.subspace.Jenine()

102
2018-02-05 16:55





Bạn có vài tệp swf không? Nếu lớp của bạn được nhập vào một trong các swf, swf khác cũng sẽ sử dụng cùng một phiên bản của lớp. Một nhập cũ với * trong một swf sẽ làm điều đó. Biên dịch lại mọi thứ và xem nó có hoạt động không.


96
2018-02-04 04:26



Vâng tôi cá cược Jenine được biên dịch vào một số phần khác của mã của bạn, hoặc là một swf hoặc swc bạn đang sử dụng. - Arpit


Sử dụng một grep tương tự để tìm các chuỗi oldnamespace và Jenine bên trong các tệp trong toàn bộ thư mục dự án của bạn. Sau đó, bạn sẽ biết những bước cần làm tiếp theo.


10
2017-07-02 01:41



Đoán của riêng tôi là tại sao bạn bị downvoted là bạn đã đưa ra một câu trả lời khá rõ ràng và ngụ ý mạnh mẽ rằng nó sẽ giải quyết vấn đề. Câu trả lời của bạn không nhất thiết là xấu, nhưng cách nói của bạn có thể được hiểu là không thể tin được quá tự tin hoặc nghịch ngợm, đôi khi làm phiền mọi người. - Erhannis
Hmm. Có lẽ bạn nói đúng. Mặt khác, nó bực bội khi câu hỏi không đưa ra câu trả lời cho những câu hỏi rõ ràng như tôi. Một cái gì đó như "Tôi đã tìm kiếm chuỗi Jenine trong tất cả các tập tin, nhưng không thể tìm thấy một trận đấu". Tôi tò mò. Tôi muốn giải quyết bí ẩn này. Nhưng tác giả để tôi treo. - Ark-kun
Như tôi đã nói, câu trả lời của bạn không nhất thiết là xấu; nó có thể đã được rằng bạn phrasing khó chịu một ai đó. Thành thật mà nói, đó là phản ứng đầu tiên của tôi. Tôi thường cố gắng nói mọi thứ theo cách "hy vọng điều này sẽ giúp ", do đó thường xuyên nguyên nhân thực sự của sự vật không phải là những gì bạn nghĩ. Một lần nữa, tôi đồng ý rằng câu trả lời của bạn Là một cái gì đó người ta nên thử, và do đó đáng xem xét như là một câu trả lời được gửi, nhưng phrasing đôi khi ảnh hưởng đến mọi người nhiều hơn nó nên. - Erhannis