2011-03-04 83 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調用。

所以答案的問題是,包括路徑是相對於調用腳本的位置,項目。這意味着庫中的任何腳本都可以包含庫中的特徵而不會出現問題,因爲結構將被保留。