2011-03-04 40 views
0

我正在开发用于Flash ActionScript3的自定义库,并且我有几个函数要添加到Array.prototype更改ActionScript的包含路径

我放在扩展在一个单独的.as文件的文件夹内的库目录,但是当我做include电话从我的文档类,它会尝试执行包括相对.fla文件的位置,而不是图书馆源路径。

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

如何获取include路径与库的路径有关?

目录结构:

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

包括不工作(但应):

include "libname/inc/array.as"; 

包括工作,但不可移植,如果我将项目移动到不同的位置:

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

回答

0

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

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

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

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