A 2種類のスクリプト
GeoGebraで利用できるスクリプト
新規ツールを作ることは、GeoGebraでプログラムを作成することに相当すると、「新規ツールの作成」でも述べましたが、テキストでプログラムを見られないなど、通常言われるプログラムとは異なるものでした。ただし、GeoGebraらしさは、そこにこそあると言えます。
ここでは、GeoGebraの命令を、通常のプログラムに近い状態で保存する方法として、スクリプトを説明します。GeoGebraの良さは損なわれるものの、必要な場合もあるでしょう。GeoGebraで利用できるスクリプトには次の2種類があります。
GeoGebraスクリプト
JavaScript
GeoGebraスクリプト
GeoGebraスクリプトは、入力バーに入力できる命令を、入力バーと同じ文法で1行ずつ記したものです。入力バーで命令を実行することに慣れていれば、新たに覚える必要のある事柄はほとんどありません。特徴をあげてみます。
スクリプトはオブジェクトに付随し、そのオブジェクトがクリックされたり、更新されたときに実行される。
入力バーで利用できる命令を、同じ文法で利用できる。
スクリプトの1行に1命令ずつ書き、それらが順次実行される。
入力バーでできないことは、GeoGebraスクリプトでもやはりできません。例えば、新規ツールの作成はメニューから行うしかなく、繰り返しはSequence命令に頼るしかなく、再帰を用いたプログラムは不可能です。
JavaScript
JavaScriptは、JavaScriptの文法で間接的にGeoGebraの命令を実行します。特徴をあげてみます。
オブジェクトに付随するスクリプトと、どのオブジェクトからも見える大域的なスクリプトがある。
オブジェクトに付随するスクリプトは、そのオブジェクトがクリックされたり、更新されたときに実行される。
大域的なスクリプトは、他のスクリプトから呼ばれることでのみ実行される。多くのオブジェクトから共通に利用される関数をここに記述すると良い。
GeoGebraの命令の実行や、GeoGebraのオブジェクトの情報の取得は、ラッパー関数を通じて行う。
ラッパー関数を経由する分だけ記述が煩雑になりますが、本格的なプログラムが組めます。
スクリプトの作成方法
GeoGebraスクリプトやJavaScriptを作成する箇所は、プロパティダイアログの「スクリプティング」タブにあります。下の図は、点Aのプロパティダイアログです。
GeoGebraスクリプトか、JavaScriptかは、ダイアログ下部の枠で囲んであるプルダウンメニューで選択します。また、入力エリアの上部にある
On Click
On Update
グローバルJavaスクリプト
のタブは、それぞれ、クリックしたときに実行されるもの、(位置や値が)更新されたときに実行されるもの、上述の大域的JavaScriptです。GeoGebraスクリプトに大域的なものはありません。クリックや更新といったイベント発生時に実行されるスクリプトをイベントハンドラと呼びます。
スクリプト作成の具体例は、引き続くページで説明します。