TI-Nspireガイドブック和訳改訳「Luaスクリプトの作成」

(01/12)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™ Scripting APIライブラリーへのリンクなど、TI-Nspire™の補足資料が見つかります。(この情報はeducation.ti.com/nspire/scriptingにもあります)。
  • Luaについて詳しくはlua.orgにアクセスしてください。

 

(02/12)Script Editorの概要 

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

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

 

 (03/12)Script Editor画面の説明 

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

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

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

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

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

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

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

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

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

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

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

 

(04/12)ツールバーを使う 

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

ツール

ツールの機能

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

Suspend Script

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

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

 

Resume Script

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

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

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

Set Script

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

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

 

 

Focus Script

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

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

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

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

 

Step Into

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

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

 

Step Over

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

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

Enable

Breakpoints

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

 

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

 

Disable

Breakpoints

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

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

 

 

Set

Permissions

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

 

ツールズ・パネルを使う

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

タブ

表示される内容

Console

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

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

Globals

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

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

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 

 

(05/12)新規スクリプトを挿入する 

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

  1. スクリプトの挿入先となるドキュメントを開きます。新規ドキュメントでも既存のドキュメントでも構いません。
  2. [Insert]>[Script Editor]>[Insert Script]の順にクリックします。 

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

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

  1. スクリプトのタイトルを入力します(文字数は最長32文字です)。 
  1. [OK]をクリックします。 

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

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

標準以外のUTF-8ワイド・キャラクターの一部は、正しく表示されないことがあります。この種の文字については、string.uchar函数を使うことを強くお勧めします。(訳註:たとえばprint(string.uchar(8594))というスクリプトを実行すると、[Console]タブには→が表示される)

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

 

(06/12)スクリプトを編集する 

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

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

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

  1. 目的のページと、目的のスクリプトを含んでいるワーク・エリアとを選択します。 
  1. [Insert]>[Script Editor]>[Edit Script]の順にクリックします。 

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

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

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

注: 

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

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

  • UTF-8以外の文字の文字については、print函数を実行したときに、予期しない実行結果になることがあります。
  • on.save函数から返された表示不能文字は、切り捨てられることがあります。(訳註:on.saveは、スクリプト・アプリケーションがドキュメントに保存されるかクリップボードにコピーされるかしたときに呼び出される)
  1. スクリプトを実行するときは[Set Script]をクリックします。 

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

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

 

(07/12)ビュー・オプションを変更する 

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

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

▶ ドキュメント内、および[Console]の各printステートメントの前にスクリプト・タイトルを表示するときは、[View]>[Title in Document View]の順にクリックします。(訳註:たとえばタイトルがsuteの場合、この操作をすると、ドキュメントのほうにもsuteと表示されるし、print(string.uchar(8594))を実行したときには[Console]タブにsute: →と表示される)

ツールバー・ラベル(ツールバーのボタン名)を表示、非表示を切り替えるときは、[View]>[Toolbar Text Labels]の順にクリックします。

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

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

 

(08/12)最低APIレベルを設定する 

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

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

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

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

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

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

  1. Script Editorの[File]メニューから[Set Minimum API Level]を選択します。
  2. ダイアログ・ボックスにmajor.minorという形式で最低レベルを入力します。

たとえば「2.3」のように入力します。 

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

 

(09/12)スクリプト・アプリケーションを保存する 

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

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

  1. [Script Editor]ウィンドウで[Set Script]をクリックして、ドキュメントに含まれているスクリプト・アプリケーションをリセット(アップデート)します。
  2. 開いているドキュメントで[File]>[Save Document]の順にクリックし、変更した内容をTI-Nspire™かPublishView™かいずれかのドキュメントに保存します。

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

 

(10/12)画像を管理する

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

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

  1. [Resource]タブをクリックします。
  2. f:id:ti-nspire:20150123121327j:plainボタンをクリックします。 

  1. 画像のファイル名をクリックします。 
  1. [Open]をクリックします。 
  1. デフォルトの画像名のままにするか、新しい名前をボックスに入力して画像名を変更するか、いずれかを行います(例:newimage)。
  2. [OK]をクリックします。

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

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

 

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

  1. [Resource]タブをクリックします。
  2. f:id:ti-nspire:20150123121327j:plainボタンをクリックします。 
  1. [Files of Type]メニューから[Comma Separated Values (*.csv)]を選択します。 
  1. 目的の.csvファイルを選択します。

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

Windowsでの例

bridge,C:\images\bridge.jpg

house,C:\images\house.jpg

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

 

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

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

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

function on.paint (gc

     gc:drawImage (myimage, 30, 30) 

end

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

  1. [Set Script]をクリックしてスクリプトを保存します。画像が[Document Preview]画面に表示されます。 
  1. [Focus Script]をクリックして、ドキュメント内のページのうち、スクリプト・アプリケーションのアタッチ先となるページにフォーカスをセットします。

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

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

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

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

 

(11/12)スクリプトのパーミションを設定する 

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

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

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

  1. [Permissions Level]エリアで、しかるべきセキュリティー・レベルを選択します。
  • [Protected]:スクリプトは、実行はできますが、閲覧も編集もできません。
  • [View only]:スクリプトは、閲覧はできますが編集はできません。
  • [Unprotected]:閲覧も編集もできます。 
  1. スクリプトのセキュリティーを確実にしたいときは、[Security]エリアにパスワードを入力してください。

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

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

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

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

 

(12/12)スクリプトデバッグする 

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

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

注:ブレークポイントを無効にすると、必ずスクリプトの実行が再開されます。

デバッグ中は適宜、[Step Into]および[Step Over]をクリックしてください。「Script Editor画面の説明」セクションを参照してください。

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

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

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

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