Flash CS4 ปฏิเสธที่จะปล่อย


2742

ฉันมีโครงการ Flash และมีไฟล์ต้นฉบับมากมาย ฉันมีคลาสที่ค่อนข้างใช้งานหนักเรียกว่าเจนนิน ฉันเพิ่งย้าย (และบางทีอาจเรียกได้ว่า) ย้าย Jenine จากเนมสเปซหนึ่งไปอีกอันหนึ่ง ฉันคิดว่าเราพร้อม - ฉันคิดว่ามันเป็นเวลา ใหม่ Jenine ดีกว่าในทุก ๆ ทาง - เธอสูญเสียรหัสล้นหลามเธอได้แยกตัวเองออกจากความสัมพันธ์ทางชนชั้นที่เป็นร่องรอยและในที่สุดเธอก็กลับบ้านมาที่เนมสเปซที่เธอรู้จักอย่างลับ ๆ ในหัวใจของเธอ เป็นของ. เธอเป็นคนใจดี

น่าเสียดายที่ Flash ไม่มีสิ่งนั้น บางทีมันอาจจะกลายเป็นสิ่งที่แนบมา บางทีมันอาจไม่ต้องการให้ Jenine แยกตัว ไม่ว่าจะด้วยวิธีใดมันยึดติดกับเจนนินรุ่นเก่าที่สมบูรณ์แบบในความทรงจำ มันปฏิเสธที่จะไปต่อ มันไม่สนใจการโทร (ฟังก์ชั่น) ของเธอ มันพยายามลืมอินเตอร์เฟสใหม่สาธารณะของเธอ แต่ทุกตัวอย่างของ Jenine ที่สร้างขึ้นนั้นเป็นสำเนาของเวอร์ชั่นเก่าเสมอไปจนถึง classpath ของมัน:

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

เราต่อสู้ ฉันไม่ได้ภูมิใจในสิ่งที่ฉันพูดหรือทำ ในท้ายที่สุดด้วยความโกรธแค้นที่สูงตระหง่านฉันได้ลบการอ้างอิงทั้งหมดของเจนนินอย่างสมบูรณ์ เธอถูกลบออกจากระบบอย่างสมบูรณ์ เคอร์เซอร์ของฉันตกลงไปที่ตัวเลือกเมนู "ถังขยะที่ว่างเปล่า" เช่นฝาเย็นของโลงศพ

ฉันไม่คิดว่า Flash กู้คืนมาได้ จนถึงทุกวันนี้มันยังคงยึดติดกับความทรงจำของเจนนิน คำจำกัดความเก่าที่ไม่สมบูรณ์ของเธอยังคงลอยอยู่ในโครงการของฉันเหมือนผีที่ถูกทิ้งร้าง เมื่อใดก็ตามที่ฉันบังคับให้ Flash คอมไพล์มันยังคงแทรกความรักของเธอลงในภาพยนตร์ของฉันวางนิยามของเธอไว้ในชั้นเรียนอื่นเช่นห้องนั่งเล่นเช่นศาลเจ้าเล็ก ๆ ฉันสงสัยว่าพวกเขาสามารถเห็นเธอ

Flash และฉันไม่ได้คุยกันอีกต่อไป ฉันเขียนโค้ดมันคอมไพล์แล้ว มีหญิงสาวคนใหม่ในเมืองชื่อ Summer ซึ่งมีลักษณะเกือบจะเหมือนกับ Jenine ราวกับว่ามีใครบางคนเพิ่งคัดลอกซอร์สโค้ดของเธอไปยังคลาสใหม่ แต่ Flash ไม่ได้แสดงความสนใจใด ๆ หลายวันที่ผ่านมามันเขียนบทกวีไม่ดีในความคิดเห็นของฉันเมื่อมันคิดว่าฉันไม่ได้มอง

ฉันหวังว่าจะไม่มีใครมีประสบการณ์คล้ายกันนี้เป็นระลอกคลื่นเอกพจน์ที่เจ็บปวดในทะเลสาบมืดที่น่ากลัวนั่นคือฐานรหัสแฟลช ใครบ้างมีความคิดวิธีการลบแคชใด ๆ ที่รวบรวมใช้?

คำตอบ:


701

Flash ยังมีไฟล์ ASO ซึ่งเป็นรหัสไบต์ที่คอมไพล์แล้วสำหรับคลาสของคุณ บน Windows คุณสามารถดูไฟล์ ASO ได้ที่นี่:

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

ใน Mac โครงสร้างไดเรกทอรีจะคล้ายกัน /Users/username/Library/Application Support/


คุณสามารถลบไฟล์เหล่านั้นด้วยมือหรือใน Flash คุณสามารถเลือกที่Control->Delete ASO filesจะลบออก


34
คัดลอกมาจากด้านล่าง: คำตอบนี้และอีกคำตอบคล้ายกันมากคือสิ่งที่ฉันกำลังมองหา แต่น่าเสียดายที่ดูเหมือนจะไม่สามารถแก้ปัญหาได้ ฉันจะชอล์คตัวนี้จนถึงข้อผิดพลาดของ Adobe ที่สนุก อย่างไรก็ตามฉันจะทำเครื่องหมายว่าแก้ไขแล้ว
Ender

292
PS: ฉันคลิกรายการเมนูซ้ำแล้วซ้ำอีก ฉันกระโจนเข้าไปในโครงสร้างของไฟล์เพื่อค้นหาไฟล์ที่มี echoes ล่าสุดของ Jenine พวกเขาไม่ได้อยู่ที่นั่น เมื่อฉันถามเกี่ยวกับพวกเขา Flash ก็พึมพำสิ่งที่ไม่ต่อเนื่องกันและจ้องมองออกไปในอวกาศ ฉันคิดว่าฉันสามารถเริ่มได้ยินบางอย่างเกี่ยวกับการใช้ค้อนทุบปุ่มเม้าส์ของฉัน เจนนินกำลังหัวเราะ
Ender

23
@ อีกต่อไปคุณประสบปัญหาเดียวกันหรือไม่หากคุณรวบรวมรหัสใหม่ในกล่องใหม่ ชอบเช็คเอาต์รหัสใหม่บนคอมพิวเตอร์เครื่องใหม่ใช่ไหม สิ่งนี้ควรบอกคุณว่ามีปัญหากับรหัสหรือสิ่งต่าง ๆ ในระบบไฟล์ของคุณ *
Jesse Webb

197

ลองลบไฟล์ ASO ของคุณ

ไฟล์ ASO เป็นไฟล์คลาสที่คอมไพล์แล้วของคลาสไฟล์ของคุณ แม้ว่า IDE จะดีกว่ามากในการปล่อยแคชเก่าเมื่อมีการเปลี่ยนแปลงบางครั้งคุณต้องลบมันด้วยตนเอง ในการลบไฟล์ ASO: การควบคุม> ลบไฟล์ ASO

นี่เป็นสาเหตุของข้อผิดพลาด "I-am-not-see-my-changes-so-me-add-a-trace-now-all-works" ที่ได้รับการแนะนำใน CS3


165

ถ้าคุณรวบรวมโดยใช้เครื่องอื่น ติดตั้งใหม่จะน่ารัก ฉันหวังว่าเครื่องของคุณจะไม่หึง


125

ฉันพบพฤติกรรมที่เกี่ยวข้องหนึ่งอย่างที่อาจช่วยได้ (ดูเหมือนว่าปัญหาเฉพาะของคุณจะทำงานได้ลึกกว่า):

แฟลชตรวจสอบว่าไฟล์ต้นฉบับต้องการการคอมไพล์ใหม่หรือไม่โดยดูที่การประทับเวลา ถ้าเวอร์ชั่นที่คอมไพล์แล้วนั้นเก่ากว่าไฟล์ต้นฉบับมันจะทำการคอมไพล์ใหม่ แต่จะไม่ตรวจสอบว่ามีการรวบรวมเวอร์ชันที่สร้างจากไฟล์ต้นฉบับเดียวกันหรือไม่

โดยเฉพาะอย่างยิ่งถ้าคุณมีไฟล์ actioncript ของคุณภายใต้การควบคุมเวอร์ชันและคุณเปลี่ยนกลับการเปลี่ยนแปลงไฟล์ที่ถูกแปลงกลับมักจะมีการประทับเวลาที่เก่ากว่าและ Flash จะเพิกเฉย


12
จริงฉันทำงานหลายโครงการกับนักพัฒนาจากแอฟริกาใต้และลอนดอน เมื่อเราส่งไฟล์แฟลชไปมาเราต้องบันทึกไว้ในเครื่องเนื่องจากการรวบรวมจะทำให้เกิดข้อผิดพลาดอย่างบ้าคลั่งตามการประทับเวลาของไฟล์ โดยพื้นฐานแล้วการพยายามรวบรวมแฟลชที่ถูกบันทึกไว้ในอนาคตเป็นปัญหา เราคิดออกโดยเปลี่ยนวันที่ของเราในระบบปฏิบัติการของเรา ลองตรวจสอบการประทับเวลาของคุณ
Dominic Tancredi

103

นอกจากนี้ในการใช้คลาส namespaced ใหม่ของคุณคุณสามารถทำได้

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

96

คุณมีไฟล์ swf หลายไฟล์หรือไม่? หากคลาสของคุณถูกนำเข้าในหนึ่งใน swf ของ swf อื่น ๆ ก็จะใช้รุ่นเดียวกันของคลาส การนำเข้าเก่าหนึ่งรายการที่มี * ในหนึ่ง swf จะทำได้ คอมไพล์ทุกอย่างใหม่และดูว่ามันใช้งานได้หรือไม่


10
ใช่ฉันพนันได้ว่า Jenine ถูกคอมไพล์ในส่วนอื่น ๆ ของรหัสของคุณไม่ว่าจะเป็น swf หรือ swc ที่คุณกำลังใช้
Arpit

11

ใช้grepอะนาล็อกเพื่อค้นหาสตริงoldnamespaceและJenineภายในไฟล์ในโฟลเดอร์โครงการทั้งหมดของคุณ แล้วคุณจะรู้ว่าต้องทำอย่างไรต่อไป


4
ฉันเดาว่าทำไมคุณถึงถูกโหวตว่าเป็นคุณได้รับคำตอบที่ค่อนข้างชัดเจนและบอกเป็นนัย ๆ ว่ามันจะแก้ปัญหาได้ คำตอบของคุณไม่จำเป็นต้องเลวร้าย แต่คำพูดของคุณอาจตีความได้ว่าเกินความเชื่อมั่นหรือหยิ่งยโสโดยไม่ยุติธรรมซึ่งบางครั้งทำให้ผู้คนรำคาญ
Erhannis

5
อืมมม บางทีคุณพูดถูก ในทางตรงกันข้ามมันน่าผิดหวังเมื่อคำถามไม่ได้ให้คำตอบสำหรับคำถามที่ชัดเจนเช่นของฉัน บางอย่างเช่น "ฉันค้นหาสตริงเจนนินในไฟล์ทั้งหมด แต่ไม่พบรายการที่ตรงกัน" ฉันรู้สึกทึ่ง ฉันต้องการไขปริศนานี้ แต่ผู้เขียนทิ้งฉันไว้
Ark-kun

3
อย่างที่ฉันพูดคำตอบของคุณไม่จำเป็นต้องเลวร้าย อาจเป็นเพราะคำพูดของคุณทำให้ใครบางคนรำคาญ นั่นคือปฏิกิริยาแรกของฉัน โดยทั่วไปฉันพยายามพูดสิ่งต่าง ๆ ในลักษณะของ " หวังว่านี่จะช่วยได้" เนื่องจากสาเหตุที่แท้จริงของสิ่งต่าง ๆ ไม่ใช่สิ่งที่คุณคิด ฉันเห็นด้วยว่าคำตอบของคุณคือสิ่งที่เราควรลองทำดังนั้นการพิจารณาว่าเป็นคำตอบที่ส่งมา แต่บางครั้งการใช้ถ้อยคำมีอิทธิพลต่อผู้คนมากกว่าที่ควรจะเป็น
Erhannis
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.