etc./StackOverFlow

Flash CS4가 놓기를 거부합니다.

청렴결백한 만능 재주꾼 2021. 11. 11. 07:58
반응형

질문자 :Ender


Flash 프로젝트가 있고 많은 소스 파일이 있습니다. 나는 상당히 많이 사용되는 클래스를 가지고 있는데 그것을 Jenine이라고 부릅니다. 나는 최근(그리고 아마도 냉담하게) Jenine을 한 네임스페이스에서 다른 네임스페이스로 재배치했습니다. 나는 우리가 준비가 되었다고 생각했다 - 나는 때가 되었다고 생각했다. 새로운 Jenine은 모든 면에서 더 좋았습니다. 그녀는 코드 부풀림을 약간 잃어버렸고, 몇 가지 흔적이 남아 있는 계급 관계에서 자신을 분리했으며, 마침내 그녀는 마음속으로 항상 비밀리에 알고 있던 이름 공간이 진정 그녀의 이름임을 알게 되었습니다. 에 속하다. 그녀는 자신의 부류에 속했습니다.

불행히도 Flash에는 그런 기능이 없습니다. 아마도 그것은 애착을 형성했을 것입니다. 아마도 Jenine이 분리되는 것을 원하지 않았을 것입니다. 어느 쪽이든, 그것은 기억에 오래되고 완벽한 버전의 Jenine을 붙였습니다. 진행을 거부했습니다. 그것은 그녀의 (함수) 호출을 무시했습니다. 그녀의 새로운 공개 인터페이스를 잊으려 했습니다. 대신, 생성한 Jenine의 모든 인스턴스는 클래스 경로까지 항상 이전 버전의 복사본이었습니다.

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

우리는 싸웠다. 나는 내가 말하거나 한 행동 중 일부를 자랑스럽게 생각하지 않습니다. 결국 분노가 치솟아 제닌에 대한 모든 언급을 완전히 삭제했습니다. 그녀는 시스템에서 완전히, 완전히 지워졌습니다. 내 커서는 관의 차가운 뚜껑과 같은 "휴지통 비우기" 메뉴 옵션에 떨어졌습니다.

플래시가 복구된 적이 없다고 생각합니다. 오늘날까지도 제닌의 기억에 남아 있습니다. 그녀의 오래되고 불완전한 정의는 여전히 버려진 유령처럼 내 프로젝트를 떠돌고 있습니다. 내가 Flash를 강제로 컴파일할 때마다 Flash는 여전히 사랑스럽게 그녀를 내 영화에 삽입하고 그녀의 정의를 작은 신사와 같은 다른 살아있는 계층 사이에 자리잡게 합니다. 그들이 그녀를 볼 수 있는지 궁금합니다.

플래시와 나는 더 이상 말을 하지 않는다. 내 코드를 작성하면 컴파일됩니다. 마치 누군가가 그녀의 소스 코드를 새 클래스에 복사한 것처럼 거의 비슷하게 보이는 Summer라는 이름의 새로운 소녀가 있지만 Flash는 관심을 보이지 않습니다. 대부분의 날 그것은 내가 보고 있지 않다고 생각할 때 그냥 뒹굴고 내 댓글에 나쁜 시를 씁니다.

다른 누구도 비슷한 경험을 하지 않았기를 바랍니다. 이것이 Flash 코드 기반인 끔찍하고 어두운 석호에서 하나의 고통스러운 파문일 뿐입니다. 컴파일러가 사용하는 캐시를 지우는 방법을 아는 사람이 있습니까?



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 을 선택하여 제거할 수 있습니다.


wpjmurray

ASO 파일을 삭제해 보십시오.

ASO 파일은 클래스 파일의 캐시된 컴파일된 버전입니다. IDE가 변경 사항이 있을 때 오래된 캐시를 삭제하는 데 훨씬 더 뛰어나지만 수동으로 삭제해야 하는 경우가 있습니다. ASO 파일을 삭제하려면: Control>Delete ASO Files.

이것은 CS3에 도입된 "I-am-not-seeing-my-changes-so-let-me-add-a-trace-now-everything-works" 버그의 원인이기도 합니다.


Magocto

다른 컴퓨터를 사용하여 컴파일하면 어떻게 될까요? 새로 설치된 것이 멋질 것입니다. 나는 당신의 기계 가 질투하지 않기를 바랍니다.


Rodrigo Strauss

도움이 될 수 있는 하나의 관련 동작을 찾았습니다(귀하의 특정 문제가 더 깊어지는 것처럼 들림).

Flash는 타임스탬프를 보고 소스 파일을 다시 컴파일해야 하는지 여부를 확인합니다. 컴파일된 버전이 소스 파일보다 오래된 경우 다시 컴파일됩니다. 그러나 컴파일된 버전이 동일한 소스 파일에서 생성되었는지 여부는 확인하지 않습니다.

특히, 버전 제어 하에 있는 액션스크립트 파일이 있고 변경 사항을 되돌리면 되돌린 파일은 일반적으로 이전 타임스탬프를 가지며 Flash는 이를 무시합니다.


Laurie Cheers

또한 새 네임스페이스 클래스를 사용하려면 다음을 수행할 수도 있습니다.

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

Arpit

여러 개의 swf 파일이 있습니까? 클래스를 swf 중 하나로 가져오면 다른 swf에서도 동일한 버전의 클래스를 사용합니다. 하나의 swf에 *가 있는 오래된 가져오기가 수행됩니다. 모든 것을 다시 컴파일하고 작동하는지 확인하십시오.


Dave

grep 아날로그를 사용하여 전체 프로젝트 폴더의 파일에서 oldnamespaceJenine 문자열을 찾습니다. 그러면 다음에 해야 할 단계를 알 수 있습니다.


Ark-kun

출처 : http:www.stackoverflow.com/questions/2193953/flash-cs4-refuses-to-let-go

반응형