1

나는 어도비 플래시 빌더에서이 같은 프로젝트 설정을했다 : 는IntelliJ IDEA에서 3 개의 프로젝트 (모듈) 중에서 공유 소스 폴더를 설정하는 방법은 무엇입니까?

enter image description here

기본적으로, GameProjTitleProj 자신의 국부 펀드까지 컴파일 (그것을 내가 할 수있는 최선을 보여주기 위해 노력했다) . 그들은 각각 고유 한 소스 폴더 (src- nameofproject)뿐만 아니라 LoaderProj에서 사용되는 일반적인 링크와 연결됩니다. 또한

, GameProj도 TitleProj 일부 클래스를 의미한다, 그래서 또한 (이 경우, SRC-제목) 제목의 자신의 소스 폴더에 소스 경로를 연결합니다. 그것은 (Loader.loadBytes() 포함) 런타임

을에서로드 ByteArrays, 같은 titleproj.swf gameproj.swf"내장"그래서

다음, LoaderProj는 설정이다하지만 지금은 ' IntelliJ IDEA에서이 복잡한 다중 프로젝트 시나리오를 어떻게 설정할 수 있습니까?

Flash Builder 작업 공간을 IntelliJ로 가져 오려고했지만 프로젝트 구조 설정을 구성하려고 할 때 모듈간에 소스 폴더의 충돌이 계속 발생합니다.

어떻게 해결할 수 있습니까? 같은 방법으로 어떻게 컴파일 할 수 있습니까?

+0

당신이 읽었습니까 : http://www.jetbrains.com/idea/webhelp/configuring-dependencies-for-modular-applications.html ? – snowdragon

+0

플래시 빌더에서 IntelliJ로 전환했을 때도 동일한 프로젝트 (파일 -> 새 모듈, 모듈 가져 오기)에 여러 모듈을 추가하거나 여러 빌드 구성을 추가하여 해결할 때 비슷한 문제가있었습니다. – Alex

답변

0

죄송합니다. 귀하의 질문에 대한 실제 답변이 아니라 문제의 재 형성 : 두 개의 다른 swfs를 컴파일하는 이유가 실제로 표시되지 않고 LoaderProj 인 경우 세 번째 swf에 포함 할 이유가 없습니다. swf 실제로 당신이 결국 사용하는 유일한 swf 무엇입니까?

동일한 소스 폴더 src, src-title을 여러 swfs에 포함 시키면 같은 클래스의 2 ~ 3 번을 다시 컴파일하게됩니다. 컴파일 시간이 오래 걸리고 컴파일 (3 번 호출)이 많으며 프로젝트가 복잡해지며 최종 swf의 크기가 커지고 하위 클래스의 이전 버전을 포함시키려는 경우 동기화되지 않을 수도있는 동일한 클래스에 대한 여러 정의가 필요합니다. swfs 및 하위 swfs를로드하는 ApplicationDomain에 따라 루트 swf 정의를 무시할 수도 있고하지 않을 수도 있습니다.

또한 공유 클래스의 중복 된 정의에 대한 바이트 및 메모리 작업에서 포함 된 swf를로드 할 때 런타임 swf 디코딩 오버 헤드를 추가합니다.

나는 간단하게 유지하고 LoaderProj.swf를 모든 원본 폴더로 직접 컴파일하고 간단한 인스턴스화로 Loader.loadBytes()를 바꿉니다. new GameProjMainClass; 또는 new TitleProjMainClass; (현재 서브 프로젝트의 현재 주 클래스로 대체)

다중 swf 설정은 동일한 최종 swf에 포함되어 있지 않고 필요에 따라로드 된 경우 적합 할 수 있습니다. 두 세계 모두 최악의 (단일 swf 임베디드 VS 동적 swf로드 필요)

+1

네 제안에 100 % 동의합니다. 그것은 단지 프로젝트가 설정되는 방식을 바꾸기 시작할 수 없다는 것입니다 (심지어 그것이 진절머리 나게하는 것을 의미한다고하더라도). 개별적으로 컴파일 된 SWF와 중복 된 소스 경로 바이트 코드가 컴파일 된 이유는 매번 제목 화면에서 게임을 시작하지 않고도 각 SWF를 개별적으로 (그리고 더 빨리) 테스트 할 수 있기 때문입니다. – bigp

+0

"currentGameState = new InGame"이라고 말하는 게임을 시작하기 전에 일종의 정적 변수 또는 빠른 대체를 처리 할 수 ​​있다는 것을 알고 있습니다. 일단 테스트를 마친 후에는 "new TitleScreen"으로 재설정하십시오. 그러나 우리는 설치 과정에서 그렇게 운이 좋은 것은 아닙니다! :( – bigp