別のAppleScriptからAppleScriptの特定のサブルーチンを呼び出す方法は?


3

私は私のコンピュータのどこかに保存されている別の.scptファイル内から.scptファイルを起動することが可能であることを理解しています。

別の.scptファイルからその.scptファイルの特定のサブルーチンを呼び出すことはできますか?スクリプト全体をスキップして、1つの特定のサブルーチンにあるコードだけを実行したい

私はサブルーチンをそれ自身の専用の.scptファイルに単純にコピーしてそのようにしたいことを達成できることを理解しています。この方法は、 この答え 。ただし、便宜上、これを行う必要はないことをお勧めします。


さらに、そのサブルーチンに変数を渡すことも可能ですか?私の現在のニーズはこの能力を必要としませんが、私はまだ興味があります。


回答:


1

AppleScriptの load script

AppleScriptの load script コマンドはあなたが望むことをするでしょう。

デスクトップに .scpt 以下のファイル saySomething ハンドラ:

on saySomething()
    say "hello"
end saySomething

それから別のスクリプト内であなたが呼ぶことができます saySomething

set myOtherScript to load script (alias ((path to desktop folder as string) & "external.scpt"))
myOtherScript's saySomething()

から返されたオブジェクト load script スクリプトオブジェクトです。ロードされると、スクリプトオブジェクトはローカルとして扱われ、そのローカルを持つことができます ハンドル パラメータを含めて呼び出されます。

見る 共有AppleScriptコードを別のファイルに入れて、それをさまざまなスクリプトにロードすることはできますか? より多くの例については。


0

OPに3つの質問があります。

  • タイトル:AppleScriptの特定のサブルーチンを別のAppleScriptから呼び出す方法

    これは実際にはリンクされた答えの中で、あなたのOPの中のリンクによって答えられ、またGraham Milnの答えによっても触れられます。

  • 別の.scptファイルからその.scptファイルの特定のサブルーチンを呼び出すことはできますか?スクリプト全体をスキップして、1つの特定のサブルーチンにあるコードだけを実行します。

    ドキュメンテーションと例は、 ハンドラー 外部スクリプトが呼び出されるのは単なる ハンドラー 他のAppleScriptはありません コード

    ええと、昔のことわざに書いてあるように…証明はプディングの中にあります…答えはイエスです ハンドラ 他から filename.scpt 有効なAppleScriptを含むファイル コード のターゲットに注意してください load script コマンド 全体をロードします スクリプト ただし、メモリに書き込むと、それ以外のものは実行されません。 ハンドラー と呼ばれる。

  • さらに、そのサブルーチンに変数を渡すことも可能ですか?

    提供する ハンドラ 呼ばれることは取るように書かれています パラメーター はい、あなたはそれを渡すことができます 変数 それはすでに割り当てられていて パラメータ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.