入力窓(Editable Text)
Cinderella/KeTCindyで使う入力窓(Editable Text)の作成方法と、 KeTJSで入力内容を取得・変更する関数をまとめています。
1. Editable Text の作成法
- Cinderella のメニューで 「モード」→「特別」→「文字列入力」 を選びます。
- 作成された入力窓に、初期文字列を入力します。
- 「要素を動かす」モードに戻します。
- 入力窓を Shift キーを押しながらクリックし、インスペクタで識別番号を確認します。
- 必要に応じて KeTCindy の
Seteditableで表示文字列・文字サイズ・幅を設定します。
Seteditable(12, ["y=", "Size=18", "Width=200"]);
上の例は、識別番号12の入力窓について、表示文字列を y=、
文字サイズを18、幅を200に設定する例です。
数値の単位や細かな挙動は、使用中のKeTCindy/Cinderellaの版で確認してください。
2. 入力窓の位置
識別番号が12の入力窓は、Cindyscriptで Text12.xy を使って位置を指定できます。
例えば、座標を明示する場合は次のように書きます。
Text12.xy = [2, -3];
[2, -3] は座標の例です。実際に置きたい位置に合わせて値を変更してください。
入力窓の作成時に付いた識別番号と、スクリプト中の Text12 の番号を一致させます。
3. Textedit と Subsedit
Textedit(番号, デフォルト値) — 入力内容を取得
入力窓に入力された文字列を取得します。入力文字列に = が含まれる場合は、
原則として = の右側が返されます。入力が空の場合は、第2引数のデフォルト値が返されます。
str = Textedit(12, "x^2");
この例では、入力が空なら str に x^2 が入ります。
Subsedit(番号, 文字列) — 入力窓の内容を変更
指定した入力窓に文字列を設定します。入力内容をプログラムから初期化したり、 計算結果などを窓に表示したりするときに使います。
Subsedit(12, "x^2");
違い:
Textedit は入力窓から文字列を読み取る関数、
Subsedit は入力窓へ文字列を書き込む関数です。
どちらも入力窓の識別番号を指定します。
注意:
入力窓を利用するときは、Cinderellaの画面上ではうまく動作しないことがあります。
作成したKeTCindyJSのHTMLファイルを開き、その画面で動作を確認してください。
4. サンプルファイル
下のリンクを右クリックして「リンク先のファイルを別名で保存」などを選ぶと、 各ファイルを個別にダウンロードできます。htmlファイルは,クリックで開きます。