【问题标题】:Where will Flash look first for a Class definition: in an AS file (source path) or a linked SWC file (library path)?Flash 将首先在哪里查找类定义:在 AS 文件(源路径)或链接的 SWC 文件(库路径)中?
【发布时间】:2011-05-24 17:02:11
【问题描述】:

我想通过将一些包或包的一部分预编译为 SWC 文件来加速大型 Flash IDE 项目的编译,我将在 Flash 发布设置下的高级 AS3 设置的“源路径”部分中包含该文件.

问题是我不知道编译器会首先在哪里寻找类定义,因为它应该(理论上)能够在 SWC 和源路径中找到类定义,因为源SWC 位于源路径中(即主 FLA 和链接的 SWC 共享相同的源路径或根目录)。

虽然您可以安排源路径(包括 AS 文件的路径)的顺序,并且可以安排库路径(SWC 文件的路径或包含 SWC 文件的文件夹的路径)的顺序,但您无法指定是源路径还是库路径首先搜索定义。

会使用库路径(AS 文件)还是源路径(SWC 文件)中的类定义?即使它们可能代表相同的类定义,除非它使用 SWC 文件,否则我不会看到我的编译时间减少。

编辑: 我发现的唯一documentation 说“如果您使用库路径,请确保 SWC 文件中的已编译代码不会在源路径中的未编译 AS 文件中重复。冗余代码会减慢 SWF 的编译速度文件。”我喜欢它提到性能影响而不提及实际使用哪个定义:P

【问题讨论】:

    标签: classpath flash-cs4 swc


    【解决方案1】:

    AS 文件是编译器查找的最后一部分。所以AS文件会覆盖swc库中的类。

    【讨论】:

    • 为了澄清,我假设它首先查找并找到类定义的地方就是它将使用的定义。所以你的意思是说它首先查看 AS 文件?无论如何...
    • 我对此进行了测试,可以确认 AS 文件中的类定义确实会覆盖链接 SWC 中的等效完全限定定义。测试:我将跟踪语句“SWC def”编译成SWC中的“testclass”构造函数。然后我修改了 AS 文件的定义以跟踪“AS def”。在我的 FLA 中,通过链接 SWC,我添加了一个脚本来实例化“testclass”。它跟踪“AS def”。如果我然后简单地删除 AS 文件并重新编译 FLA,它会跟踪“SWC def”,这表明虽然它更喜欢 AS 文件定义,但在它不存在时它将恢复为等效的 SWC 定义。
    猜你喜欢
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 2014-03-13
    • 2011-08-16
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    相关资源
    最近更新 更多