0

我正在为 Flash ActionScript3 开发一个自定义库,并且我有一些想要添加到Array.prototype.

我将扩展名放在.as库目录中一个文件夹内的一个单独文件中,但是当我include从我的文档类进行调用时,它会尝试执行相对于.fla文件位置的包含,而不是库的源路径。

我已经将 lib 路径添加到Source Path:下的值ActionScript3 Advanced Settings,这适用于我的import语句。

如何获得include相对于库路径的路径?

目录结构:

flash/
  lib/libname/inc/array.as
  projectname/project.fla

包括不起作用(但应该):

include "libname/inc/array.as";

包括该作品,但如果我将项目移动到其他位置,则不可移植:

include "../lib/libname/inc/array.as";
4

1 回答 1

0

我意识到我是如何调用include指令的。

我已将文档类存储在与.fla文件相同的目录中,因为它是项目特定的类。文档类包含include指令,但实际使用扩展Array函数的类在lib/libname.

include指令移动到.as需要扩展功能的文件允许include相对于调用类的位置调用指令,这允许我使用include "../inc/array.as";,因为.as文件位于lib/libname/utils/ClassName.as.

所以问题的答案是包含路径是相对于调用脚本的位置,而不是项目。这意味着库中的任何脚本都可以毫无问题地包含库中的功能,因为结构将被保留。

于 2011-03-04T23:55:30.537 回答