TI-Nspire Student Softwareガイドブック(第3.9版)「Luaスクリプトの作成」和訳

Luaスクリプトの作成 

Script Editorを使うと、互いにダイナミックに連動する複数のシミュレーションや、パワフルで自由度の高いユーティリティーなど、数学・科学の理解に役立つ教育用コンテンツを作成して配布することができます。スクリプトを含んだドキュメントを開くと、そのスクリプトはプログラムされたとおりに自動的に実行されます。実行中のスクリプト・アプリケーションを見るためには、そのスクリプト・アプリケーションを含んでいるページを開かなければなりません。 

Script Editorは、Luaに詳しい教員用およびプログラマー用です。Luaは、パワフルかつ高速で動作の軽快なスクリプティング言語です。TI-Nspire™ドキュメントおよびPublishView™ドキュメントはLuaに完全対応しています。スクリプト・アプリケーションを含んでいるドキュメントは、TI-Nspire™ハンドヘルドおよびTI-Nspire™ Document Playerで開くことができます。スクリプト・アプリケーションは、TI-Nspire™ハンドヘルドでもTI-Nspire™ Document Playerでも動作しますが、そのスクリプトは、閲覧も編集もできません。

Script Editorの使い方、およびスクリプトの作り方については、以下の手順で探してください。 

  • F1を押してTI-Nspire™のヘルプを表示すると、そこにScript Editorのヘルプも入っています。
  • F2を押すと、スクリプトのサンプルやTI-Nspire™ ScriptingAPIライブラリーへのリンクなど、TI-Nspire™の補足資料が見つかります。(この情報はeducation.ti.com/nspire/scriptingにもあります)。
  • Luaについて詳しくはlua.orgにアクセスしてください。 

ScriptEditorの概要 

Script Editorを使うと、TI-Nspire™ドキュメント(.tnsファイル)内およびPublishview™ドキュメント(.tnspファイル)内でスクリプト・エディターの挿入、編集、保存、実行、デバッグができます。 

  • ドキュメント、プロブレム、ページでのスクリプト・アプリケーションの働きは、その他のTI-Nspire™アプリケーションと同じです。
  • 新規ドキュメントを作成するとき、または既存のドキュメントを開くときに、ページ内またはスプリット・ページのワーク・エリア内でスクリプト・アプリケーションの挿入、編集ができます。
  • スプリット・ページ・レイアウトの場合は、1枚のページのワーク・エリアごとに別々のスクリプト・アプリケーションが追加できます。1ページは最大で4分割できます。
  • スクリプト・アプリケーションには画像が追加できます。「画像を挿入する」セクションを参照してください。
  • Script Editorでの作業は、保存せずにTI-Nspire™ドキュメントまたはPublishView™ドキュメントを閉じると、すべて失われます。 

ScriptEditor画面の説明 

TI-Nspire™かPublishView™かどちらかのドキュメントで新規スクリプト・アプリケーションを挿入するとき、または既存のスクリプト・アプリケーションを編集するときに[Script Editor]ウィンドウが開きます。

何かドキュメントが開いているときに、ドキュメント・ワークスペースの[Insert]メニューから新規スクリプト作成用か既存スクリプト編集用かいずれかのオプションを選択してください。

明示はしていませんが、ドキュメント・ワークスペースはTI-Nspire™ Student SoftwareおよびTI-Nspire™ CAS  Student Softwareのデフォルトのワークスペースです。

下の図は、既存のスクリプトをScript Editorに表示したところです。

f:id:ti-nspire:20140916130351j:plain

①メニュー・バー:Script Editorでの作業に使うさまざまなオプションがあります。

ツールバー:Script Editorでよく使われる機能がツール・ボタンとして用意してあります。「ツールバーを使う」セクションを参照してください。

スクリプトのタイトル:スクリプトのタイトルが表示されます。変更するときは、タイトルを右クリックするか[Edit]>[SetScriptTitle]の順にクリックするかしてください。

④テキスト・ボックス:ここにスクリプト・テキストを入力します。

⑤ツールズ・パネル:スクリプトのデータが表示されます。「ツールズ・パネルを使う」セクションを参照してください。

⑥ステータス・バー:スクリプトの動作状態が表示されます。「ステータス・バー」セクションを参照してください。

 

ツールバーを使う 

ツールバーの各種オプションについて説明します。 

ツール名

ツールの機能

 

 

Suspend Script

スクリプトの実行を一時停止します。

 

 

 

Resume Script

スクリプトの実行を再開します。

デバッギング中は、次のブレークポイントスクリプトの末尾かいずれかに達するまで、スクリプトの実行が継続されます。

 

 

Set Script

スクリプトの実行を開始します。

 

 

 

 

 

 

 

Focus Script

ドキュメント内のページのうち、スクリプト・アプリケーションのアタッチ先であるページへフォーカスをセットします。

  • TI-Nspire™ドキュメントの場合は、当該ページへフォーカスがセットされます。
  • PublishView™ドキュメントの場合は、ページ上の当該フレームへフォーカスがセットされます。

 

 

 

 

Step  Into

デバッギングの際に現行ステートメントを実行します。そのステートメントが何か函数を呼び出した場合は、各函数の先頭行のところでデバッガーが停止します。

 

 

 

 

 

Step  Over

デバッギングの際に現行ステートメントを実行します。そのステートメントが何か函数を呼び出した場合、その函数ブレークポイントが含まれていなければ、その函数内でデバッガーは停止しません。

 

 

 

Enable

Breakpoints

ノーマル・モードからデバッギング・モードへ切り替えます。

 

 

 

 

Disable

Breakpoints

デバッギング・モードからノーマル・モードへ戻してスクリプトを再開します。

 

 

 

 

Set

Permissions

パーミション・レベルを[Protected]、[View Only]、[Unprotected]のいずれかに設定します。スクリプトにパスワードを設定することができます。

 

 ツールズ・パネルを使う

ウィンドウの一番下にあるツールズ・パネルにはスクリプトのデータが表示されます。詳しくは「スクリプトデバッグする」セクションを参照してください。 

 

タブ

 

表示される内容

 

Console

スクリプト・エラーが表示されます。

スクリプトに埋め込まれたPrintステートメントもここに表示されます。

 

Globals

選択されたグローバル変数が表示されます。

表示するグローバル変数を選択するときは、ツールズ・パネルの一番下にある[Clicktoaddnew watchvariable]を選択してください。

 

Call  Stack

現在実行されている函数のコール・ツリーが表示されます。

 

Locals

現行函数のスコープ内にあるローカル変数が表示されます。

 

Resources

画像のアップロード、挿入、管理はここで行います。

 

ステータス・バーを使う

ウィンドウの一番下にあるステータス・バーには、基本的なスクリプト・データが表示されます。

例:stopwatch, 1.1, 4:1, Running 

  • スクリプト・アプリケーションのアタッチ先であるドキュメントの名前:stopwatch
  • プロブレム番号、ページ番号:1.1
  • スクリプト行番号、文字番号:4:1(4行目、1文字目)
  • スクリプトの動作状態:Running。動作状態には次の種類があります。 

-      ノーマル・モード:Running、Paused、Error 

-      デバッギング・モード:Running (debugging)、Paused、Error

 

新規スクリプトを挿入する 

新しいスクリプト・アプリケーションおよびスクリプトを挿入するときは、以下の手順に従ってください。 

1.    スクリプトの挿入先となるドキュメントを開きます。新規ドキュメントでも既存のドキュメントでも構いません。

2.    [Insert]>[ScriptEditor]>[InsertScript]の順にクリックします。 

スクリプト・アプリケーションが挿入され、[Script Title]ダイアログ・ボックスが開きます。

TI-Nspire™ Student SoftwareおよびTI-Nspire™ CASStudent Softwareはドキュメント・ワークスペース内に自動的に開きます。 

3.    スクリプトのタイトルを入力します(最大文字数は32です)。 

4.    [OK]をクリックします。 

スクリプトの入力されていない[Script Editor]ウィンドウが開きます。 

5.    スクリプト・ラインにテキストを入力します。

標準以外のUTF-8ワイド・キャラクターの一部は、正しく表示されないことがあります。この種の文字については、string.uchar函数を使うことを強くお勧めします。

6.    スクリプトが完成したら[SetScript]をクリックして実行します。 

  • TI-Nspire™ドキュメントの場合は、新しいページにスクリプト・アプリケーションが挿入されます。スクリプト・アプリケーションを含んでいるページがアクティブ状態のときは、ドキュメント・ツールボックスには何も表示されません。
  • PublishView™ドキュメントの場合は、スクリプト・アプリケーションを含んでいるフレームがアクティブ・ページに追加されます。このフレームは、その他のPublishView™オブジェクトと同じように移動もサイズ変更もできます。また、このページにはほかのPublishView™オブジェクトが追加できます。

7.    スクリプト・アプリケーションを閲覧するときは、[FocusScript]をクリックしてください。

 

スクリプトを編集する 

既存のスクリプトを編集するときは、以下の手順に従ってください。 

1.    目的のスクリプトを含んでいるTI-Nspire™ドキュメントまたはPublishView™ドキュメントを開きます。

目的のスクリプトを含んでいるページをアクティブ状態にしなければなりません。 

2.    目的のスクリプトを含んでいるページおよびワーク・エリアを選択します。 

3.    [Insert]>[ScriptEditor]>[EditScript]の順にクリックします。 

Script Editorが開いてスクリプトが表示されます。ページ上で選択差入れたワーク・エリアにスクリプトが含まれていない場合、[Edit Script]はグレーアウトされます。

パスワードで保護されているスクリプトの場合は、パスワードの入力を要求する[Password Protected]ダイアログ・ボックスが表示されます。

4.    必要な変更を加えます。 

  • コメントを入力するときは、各コメント行の先頭にダブル・ハイフン(--)を使います。
  • タイトルを変更するときは、[Edit]>[SetScriptTitle]の順にクリックするか、タイトルを右クリックして[SetScriptTitle]をクリックするか、いずれかを行います。

注: 

  • 標準以外のUTF-8キャラクターの一部は、正しく表示されないことがあります。

この種の文字については、string.uchar函数を使うことを強くお勧めします。

  • UTF-8以外の文字の場合は、予期しない結果がprint函数から出力されることがあります。
  • on.save函数から表示不能文字が返ってきた場合、その一部は切り捨てられます。

5.    スクリプトを実行するときは[Set Script]をクリックします。 

エラーがあった場合は、ツールズ・パネルの[Console]エリアに表示されます。 

6.    スクリプト・アプリケーション(実行中のスクリプト)を閲覧するときは、[FocusScript]をクリックします。

 

ビュー・オプションを変更する 

ビュー・オプションを変更するときは次のようにします。

▶    ツールズ・パネル内のデータを消去してエディターをデフォルトの状態に戻すときは、[View]>[RestoreEditor to Defaults]の順にクリックします。

▶    ドキュメント内、および[Console]の各printステートメントの前にスクリプト・タイトルを表示するときは、[View]>[TitleinDocumentView]の順にクリックします。

▶    ツールバー・ラベルを表示または非表示にするときは、[View]>[ToolbarTextLabels]の順にクリックします。

▶    ツールズ・パネルまたはそのエリアを表示または非表示にするときは、[View]>[ToolsPanel]の順にクリックしてから、しかるべきオプションをクリックします。

▶    複数のスクリプトを開いているときにタブ・グループを作成するときは、どれかタイトルの1つを右クリックしてから、[New Horizontal Group]か[New Vertical Group]かいずれかをクリックします。 

 

最低APIレベルを設定する 

Luaスクリプト機能に対するAPIサポートはT-Nspire™のバージョンごとに異なります。スクリプトに最低APIレベルを設定すれば、作成したスクリプトに必要な最低限の機能が指定できます。 

スクリプトの最低APIレベルを満たしていないシステム上でそのスクリプトを実行しようとした場合は、メッセージが表示され、スクリプトは実行できません。 

スクリプトに最低APIレベルを設定するときは、次のようにします。 

1.    スクリプトに求められる最低レベルを決定します。 

-      スクリプトの機能セットに対してあまりに低いレベルを設定すると、古いソフトウェアでスクリプト・エラーの出ることがあります。

-      あまりに高いレベルを設定すると、その機能セットをサポートしている古いソフトウェアではスクリプトが開始されないことがあります。

2.    Script Editorの[File]メニューから[SetMinimumAPILevel]を選択します。

3.    ダイアログ・ボックスにmajor.minor形式で最低レベルを入力します。たとえば「2.3」のように入力します。 

スクリプトを実行するためには、このAPIレベル以上のAPIレベルが必要となります。

 

スクリプト・アプリケーションを保存する 

[Set Script]をクリックすると、TI-Nspire™、PublishView™のどちらのドキュメントでもスクリプト・アプリケーションがリセット(アップデート)されます。しかしスクリプトおよびスクリプト・アプリケーションは、ドキュメントを保存するまでは保存されません。保存せずにドキュメントを閉じるかTI-Nspire™を閉じるかした場合、スクリプト上での作業は失われます。 

すべての作業完了後に確実にスクリプト・アプリケーションを保存する手段として、以下の手順を実行してください。 

1.    [Script Editor]ウィンドウで[SetScript]をクリックして、ドキュメントに含まれているスクリプト・アプリケーションをリセット(アップデート)します。

2.    開いているドキュメントで[File]>[SaveDocument]の順にクリックし、変更した内容をTI-Nspire™かPublishView™かいずれかのドキュメントに保存します。

注:確実にバックアップできるよう、スクリプトのセットおよびドキュメントの保存は頻繁に行ってください。 

 

画像を管理する 

スクリプト・アプリケーションに画像を挿入するときは、以下の手順を実行します。 

画像を[Resources]タブに追加する 

1.    [Resource]タブをクリックします。

2.    [+]ボタンをクリックします。 

3.    画像のファイル名をクリックします。 

4.    [Open]をクリックします。 

5.    デフォルトの画像名のままにするか、新しい名前をボックスに入力して画像名を変更するか、いずれかを行います(例:newimage)。

6.    [OK]をクリックします。

注:画像のサムネールが画面の右下に表示されます。画像のファイル名は、画面左下の画像リストに表示されます。

7.    必要なら、画像名を右クリックしてから[Rename](名前変更)、[Copy Name](名前のコピー)、[Preview](プレビュー)、[Remove](削除)のいずれかをクリックします。画像は[-]ボタンで削除することもできます。 

 

複数の画像を[Resources]タブに追加する 

1.    [Resource]タブをクリックします。

2.    [+]ボタンをクリックします。 

3.    [FilesofType]メニューから[CommaSeparatedValues(*.csv)]を選択します。 

4.    目的の.csvファイルを選択します。

注:.csv形式は、カンマで区切られた2列から成ります。1列目は、コードに使われる画像リソースのローカル名です。2列目は、現行システム上での画像への絶対パスです。

Windowsでの例

bridge,C:\images\bridge.jpg

house,C:\images\house.jpg

5.[Open]をクリックします。

 

6. 必要なら、画像名を右クリックしてから[Rename](名前変更)、[Copy Name](名前のコピー)、[Preview](プレビュー)、[Remove](削除)のいずれかをクリックします。画像は[-]ボタンで削除することもできます。

 

画像を呼び出すスクリプトを作成する 

1.    スクリプト・ライン・ボックスに以下のようにスクリプトを入力します。 

myimage = image.new(_R.IMG.img_1)

function on.paint (gc)

          gc:drawImage(myimage, 30, 30)

end

上のimg_1は実際の画像名に置き換えてください。 

2.    [SetScript]をクリックしてスクリプトを保存します。画像が[Document Preview]画面に表示されます。

 3.    [FocusScript]をクリックして、ドキュメント内のページのうち、スクリプト・アプリケーションのアタッチ先となるページにフォーカスをセットします。

TI-Nspireドキュメントではページにフォーカスがセットされます。PublishView™ドキュメントでは、ページ上のフレームにフォーカスがセットされます。 

 

複数の画像を呼び出すスクリプトを作成する 

1.    スクリプト・ライン・ボックスに以下のようにスクリプトを入力します。

myimg = { }

for name, data in pairs (_R.IMG)

          myimg  [name] = image.new(data)

end 

function on.paint (gc

          gc:drawImage (myimg[imagename], 30, 30)

 end 

2.    [SetScript]をクリックしてスクリプトを保存します。画像が[Document Preview]画面に表示されます。 

3.    [FocusScript]をクリックして、ドキュメント内のページのうち、スクリプト・アプリケーションのアタッチ先となるページにフォーカスをセットします。

TI-Nspireドキュメントではページにフォーカスがセットされます。PublishView™ドキュメントでは、ページ上のフレームにフォーカスがセットされます。

 

スクリプトのパーミションを設定する 

スクリプトを保護する手段として、スクリプトにパーミション・レベルが設定できます。さらにパスワードも指定できます。以下の手順に従ってください。

1.    [Script Editor]ウィンドウで[File]>[Set Permissions]の順にクリックします。 

[Set Permissions]ダイアログ・ボックスが開きます。 

2.    [Permissions Level]エリアで、しかるべきセキュリティー・レベルを選択します。

  • Protected]:スクリプトは、実行はできますが、閲覧も編集もできません。
  • View only]:スクリプトは、閲覧はできますが編集はできません。
  • Unprotected]:閲覧も編集もできます。 

3.    スクリプトのセキュリティーを確実にしたいときは、[Security]エリアにパスワードを入力してください。

注:パスワードは復元できませんので、パスワードを設定するときは注意してください。

4.    [OK]をクリックします。 

次回[Insert]>[ScriptEditor]>[EditScript]の順にクリックしたときには、パスワードの入力を要求する[Password Protected]ダイアログ・ボックスが開きます。以下のいずれかのオプションを選択してください。 

  • スクリプトを編集するときは、パスワードを入力し、[OK]をクリックします。 
  • スクリプトを閲覧するだけの場合は、パスワードは入力せずに[View]をクリックします。

 

スクリプトデバッグする 

ランタイム・エラーを調べる手段として、あるいは実行フローをたどる手段として、スクリプトデバッグができます。デバッグ中はツールズ・パネルにデータが表示されます。

▶    デバッギング・モードを有効にするとき、またはデバッギング・モードを無効にしてノーマル・モードに戻すときは、[Debug]>[EnableBreakpoints]、[DisableBreakpoints]のいずれかの順にクリックします。

注:ブレークポイントが無効になっている場合は必ずスクリプトの実行が再開されます。

▶    デバッグ中は適宜、[StepInto]および[StepOver]をクリックします。「ScriptEditor画面の説明」セクションを参照してください。

▶    ブレークポイントをセットするときは、ライン番号の左端のスペースをダブルクリックしてください。[EnableBreakpoints]をクリックするまでブレークポイントは無効です。

▶    デバッグ中は以下の点に注意してください。 

ツールバー上で[Step Into]および[Step  Over]が利用できるのは、ブレークポイントが有効のときです。

▶    スクリプトの実行を一時停止するときは[SuspendScript]をクリックします。再開するときは[ResumeScript]をクリックします。再開されたスクリプトは、次のブレークポイントに達するかスクリプトの最後に達するかするまで実行されます。スクリプトの一時停止は、ノーマル・モードでもデバッギング・モードでもできます。