我正在开发Flash ActionScript3的自定义库,我有一些函数要添加到Array.prototype
。
我将扩展名放在库目录中文件夹中的单独.as
文件中,但是当我从文档类进行include
调用时,它会尝试执行相对于{的{ {1}}文件的位置,而不是库的源路径。
我已经在.fla
下添加了Source Path:
值的lib路径,该路径适用于我的ActionScript3 Advanced Settings
语句。
如何让import
路径相对于库的路径?
dir结构:
include
包括不起作用(但应该):
flash/
lib/libname/inc/array.as
projectname/project.fla
包括可行,但如果我将项目移动到其他位置则不可移植:
include "libname/inc/array.as";
答案 0 :(得分:0)
我意识到我是如何调用include
指令的。
我已将文档类存储在与.fla
文件相同的目录中,因为它是特定于项目的类。文档类包含include
指令,但使用扩展Array
函数实际的类位于lib/libname
内。
将include
指令移动到需要扩展功能的.as
文件,允许相对于调用类的位置调用include
指令,这允许我使用{ {1}}因为include "../inc/array.as";
文件位于.as
。
因此问题的答案是,包含路径是相对于调用脚本的位置,不是项目。这意味着库中的任何脚本都可以包含库中的功能而不会出现问题,因为结构将被保留。