可能重複:
Import AppleScript methods in another AppleScript?的#include像AppleScript的指令
是否有AppleScript的東西,可以像在C #include
指令來使用?
例如:
INCLUDE_DIRECTIVE "Path/To/Applescript.scpt"
//Some AppleScript code here
可能重複:
Import AppleScript methods in another AppleScript?的#include像AppleScript的指令
是否有AppleScript的東西,可以像在C #include
指令來使用?
例如:
INCLUDE_DIRECTIVE "Path/To/Applescript.scpt"
//Some AppleScript code here
絕對你可以做到這一點,並有兩種變化。第一次加載整個腳本:
腳本Foo.scpt
set theBar to "path:to:Bar.scpt" as alias
run script (theBar)
腳本Bar.scpt
display dialog "Bar"
--Result: A window that displays "Bar"
第二個允許你加載腳本並調用內的具體方法腳本:
Foo.scpt
property OopLib : load script POSIX file "/Users/philipr/Desktop/OopLib.app"
tell OopLib
set theResult to Oop(1)
display dialog theResult
end tell
--> result: Window displaying "Eek: 1"
OopLib.scpt
on Oop(Eek)
display dialog Eek
return "Eek: " & Eek
end Oop
使用這樣的加載腳本
set scriptLibraryPath to (path to scripts folder from user domain as text) & "myScript.scpt"
set scriptLibrary to load script scriptLibraryPath as alias
然後在腳本訪問一個子程序做到這一點...
set myValue to someMethod() of scriptLibrary
要添加什麼其他的海報說,load script
是唯一內置選項;這是非常原始的,但如果您的需求適中,可能就足夠了。
Late Night Software的Script Debugger編輯器提供了#include-style庫機制,可在編譯腳本時合併多個AppleScript文件。腳本調試器的缺點是購買數百美元,但許多普通的AppleScript用戶會告訴你這是非常值得的投資。
有幾個第三方模塊加載程序Loader和ModuleLoader,它們在基本的load script
命令之上實現更復雜的導入機制,並且值得關注的是如果您的要求更復雜。我沒有使用ModuleLoader,但是Loader(我寫的)可以在編譯或運行時從各種標準和用戶指定的位置導入模塊,並且會自動解決模塊之間的複雜(甚至循環)依賴關係。
Loader和ModuleLoader的缺點是它們依賴於腳本添加來完成一些繁重的工作,這可能是分發腳本時的一個問題(在Loader的情況下,osax只需要編譯腳本,而不是運行他們),再加上你需要添加一些樣板代碼到你的腳本來執行實際的導入。
複製http:// stackoverflow。COM /問題/ 2606136 /進口AppleScript的方法,在-另一個-的AppleScript。 – kiamlaluno 2010-06-23 02:57:13