2017-02-18 13 views
0

変数の値を使用してAppleScriptで関数/サブルーチンを呼び出すにはどうすればよいですか?ここでAppleScriptで関数/サブルーチンを呼び出すために変数の値を使用する

on HelloWorld() 
    display alert "Hello world." 
end HelloWorld 

set something to "HelloWorld" 

something() 

(代わりに、それは「何か」関数を呼び出すしようと)私が何をしたいの例です。私はそれがHelloWorldの(変数値)、代わりに変数名の「何か」を呼びたいです。それを行うには

答えて

0

正しい方法は、スクリプトオブジェクトにハンドラをラップし、検索可能なリストにそれらを置くことです:

-- define one or more script objects, each with a custom `doIt()` handler 

script HelloWorld 
    to doIt() 
     display alert "Hello world." 
    end doIt 
end script 

script GoodnightSky 
    to doIt() 
     say "Goodnight sky." 
    end doIt 
end script 


-- put all the script objects in a list, and define a handler 
-- for looking up a script object by name 

property _namedObjects : {HelloWorld, GoodnightSky} 

to objectForName(objectName) 
    repeat with objectRef in _namedObjects 
     if objectName is objectRef's name then return objectRef's contents 
    end repeat 
    error "Can't find object." number -1728 from objectName 
end objectForName 


-- look up an object by name and send it a `doIt()` command 

set something to "HelloWorld" 
objectForName(something)'s doIt() -- displays "Hello world" 

set something to "GoodnightSky" 
objectForName(something)'s doIt() -- says "Goodnight sky" 
関連する問題