GeoGebraにおけるスクリプト

スクリプトは、コマンドの連続で、順番に実行されるものです。 GeoGebraGGBスクリプトJavaスクリプトという2つのスクリプト言語をサポートしています。スクリプトは、スクリプトを割り当てたいオブジェクトの  設定のダイアログスクリプト記述タブで入力します。 注意:スクリプトを実行するには、設定 パネルを閉じる必要があります。
オブジェクトによってサポートするスクリプトの種類は異なり、スクリプトの実行は次のような方法で実行することができます:
  • 特定のオブジェクトをクリックする (クリックしてタブ)
  • オブジェクトの値やプロパティが変更された場合、特定のオブジェクトを更新する(最新情報タブ)
  • 入力ボックスの内容が変更されたとき(変更時 タブ)
  • オブジェクトをドラッグした後、マウスボタンを離したとき(タッチデバイスの場合は画面から指を離したとき)(On Drag-endタブ)
  • ファイルの読み込み(JavaScriptの場合 - グローバルJavaスクリプト タブ)
  • Javaスクリプトのリスナー(「資料:Javaスクリプト」参照)
入力ボックスのOnUpdateスクリプトとOnChangeスクリプトの違いは、OnUpdateタブに入力したスクリプトは、入力ボックスからフォーカスが外れたとき(ボタンのクリック、グラフィックビューのクリックなど)にだけ実行されますが、OnChangeタブに入力したスクリプトは、入力ボックスの内容が変われば、入力ボックス自体にまだフォーカスされているときでも実行されます。 備考: 入力ボックスのOnChangeとOnUpdateスクリプトのデモを確認してください。 ドラッグ可能なポイントに対するOnDrag-endスクリプトのデモを確認してください。

GGBスクリプト

入力バーで使っているようなGeoGebraコマンドで構成されたスクリプトを作成することができます。スクリプトを実行すると、すべてのコマンドが、書かれた順番通りに、連続的に実行されます。 例:
  1.  は から (増分は ) の整数値のスライダー 
  2. list1 = {"red", "green", "blue"} を入力します。
  3. のプロパティで, "変更時" のスクリプトに SetColor(a, Element(list1, a)) と設定します。
  4. スライダーを動かすと,スライダーの色が変わります。
スライダーを動かすたびに、更新が発生します。つまり、移動するたびにスクリプトが呼び出され、の値を使ってリストから1つの色を選び、スライダーのの色を変更します。 注: コメントは文頭に をつけてください。 ヒント:スクリプトにのみ使用できるコマンドもあります。これらのコマンドの一覧は、Scripting_Commands(英語)ページを参照してください。

Javaスクリプト

Javaスクリプトは、多くのインターネット技術で使用されているプログラミング言語です。GeoGebra スクリプトとは異なり、Javaスクリプトではコマンドを単純なシーケンスとして実行する必要はなく、制御フロー(if, while, for)を使用することができます。一般的なJavaスクリプトについては、developer.mozilla.orgでわかりやすいチュートリアルを見ることができます。GeoGebraでは、アプレットを変更することができる特別なJavaスクリプトメソッドを使用することができます。これらのメソッドはggbAppletオブジェクトに属しており、ggbApplet. メソッド名(パラメータ,...,パラメータ)としてそれらを呼び出すことが可能です。これらのメソッドの完全なリストについては、リファレンス:Javaスクリプト(英語)を参照してください。 例:
  • for(var i =0;i<10;i++) ggbApplet.evalCommand("A_"+i+"=(random()*10,random()*10)");
  • このスクリプトはランダムな座標の点を10個  〜  を作成します。 注:Javaスクリプトによるスクリプトは非常に多機能ですが、よりシンプルなGeoGebraスクリプトを使用しても多くのタスクが実現できます。

    グローバルJavaスクリプト

    プロパティダイアログのスクリプト記述タブにあるグローバルJavaスクリプトでは、他のスクリプトから利用可能な関数(変数ではない)を定義することができます。また、ggbOnInit(name, api)という関数を定義することができ、これはアプレットが読み込まれるとと自動的に呼び出されます。ggbOnInit関数は、以下のように、いくつかのリスナーを設定するために使うことができます。 例: function onAdd(name){ alert("オブジェクト "+name+" が追加されました."); } function ggbOnInit(name, api){ api.registerAddListener("onAdd"); } 最初に関数 onAdd を定義し、与えられた文字列によってメッセージを表示するようにしました。その後、ggbOnInit 関数を使って、新しいオブジェクトが追加されるたびにこの関数を呼び出すように GeoGebra に指示しました。一度アプレットをリロードすると、ggbOnInit関数が呼び出され、それ以来、ユーザーが例えば A というポイントを追加すると、「オブジェクトAが追加されました.」というメッセージが表示されます。 また、リスナーを使用して、アプレットの名前の変更、削除、クリアなどのアクションを行うことができます。詳しいリストはReference:JavaScript(英語)に掲載されています。 注意: ggbOnInit以外のグローバルJavaスクリプトでggbAppletのメソッドを使用すると、アプレットがロードされる前に呼び出されるため、意図したとおりに動作しないでしょう。