【问题标题】:How to setup a shared source-folder among 3 Projects (Modules) in IntelliJ IDEA?如何在 IntelliJ IDEA 中的 3 个项目(模块)之间设置共享源文件夹?
【发布时间】:2014-06-23 14:43:41
【问题描述】:

我在 Adob​​e Flash Builder 中有一个这样的项目设置: (尽力说明)

基本上,GameProjTitleProj 被编译成它们自己的 SWF。它们每个都有自己特定的源文件夹 (src-nameofproject),以及指向 LoaderProj 使用的通用源文件夹的链接。

另外,GameProj还引用了TitleProj中的一些类,所以它也链接了一个source-path到Title自己的source-folder(src-title ,在这种情况下)。

然后,LoaderProj 被设置,以便它“嵌入” gameproj.swftitleproj.swf 作为 ByteArrays,它加载在运行时(Loader.loadBytes()

但现在我想知道如何在 IntelliJ IDEA 中设置这个复杂的多项目场景?

我尝试将 Flash Builder 工作区导入 IntelliJ,但是当我尝试配置项目结构设置时,它一直告诉我模块之间的源文件夹存在冲突。

我怎样才能解决这个问题?我怎样才能以同样的方式编译它?

【问题讨论】:

  • 你读过这个吗:jetbrains.com/idea/webhelp/…
  • 我从 Flash Builder 切换到 IntelliJ 时也遇到了类似的问题,通过将多个模块添加到同一个项目(文件->新模块、导入模块)或仅添加多个构建配置来解决。

标签: actionscript-3 intellij-idea flash-builder shared-libraries multiple-projects


【解决方案1】:

抱歉,这不是对您问题的实际答案,而是对您的问题的重新表述: 如果 LoaderProj.swf 确实是您最终使用的唯一 swf,我实际上没有看到编译两个不同 swf 并将它们嵌入第三个的理由?

通过在多个 swf 中包含相同的源文件夹 src、src-title,您将重新编译 2 或 3 次相同的类。它会花费您更多的编译时间、更多的编译(3 次调用)和更复杂的项目、最终 swf 中更大的大小、相同类的多个定义,如果您碰巧嵌入了旧版本的 sub- swfs,这可能会或不会覆盖根 swf 定义,具体取决于您在其中加载子 swfs 的 ApplicationDomain。

此外,当从字节数组加载嵌入式 swf 时,您会增加运行时 swf 解码开销,以及共享类的重复定义的内存占用。

我宁愿保持简单,直接用所有源文件夹编译 LoaderProj.swf,并用简单的实例化替换 Loader.loadBytes()。 new GameProjMainClass;new TitleProjMainClass;(替换为您子项目当前的实际主类)

如果多个 swf 设置没有嵌入到同一个最终 swf 中并按需加载,则它们可能是相关的,但在这里,您就像是两全其美(单个 swf 嵌入您需要的所有内容 VS 动态 swf 加载)

【讨论】:

  • 是的,我 100% 同意您的建议。只是我无法开始改变项目的设置方式(即使那意味着坚持一个蹩脚的方式)。我认为单独编译的 SWF 和其中编译的冗余源路径字节码背后的原因是,每个 SWF 都可以单独测试(并且更快),而不是每次都从标题屏幕启动游戏。
  • 我意识到这可以在启动游戏之前处理某种静态变量或快速替换以说“currentGameState = new InGame”,一旦测试完毕,将其重置回“new标题画面”。但是,我们的设置就没有那么幸运了! :(
猜你喜欢
  • 2011-07-15
  • 2014-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-16
  • 2020-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多