4. 計算や処理を行わせる: 2) 「ここだけ」スクリプトと「ここから」スクリプト
← [4. 計算や処理を行わせる: 1) スクリプトの基本ルール]へ戻る | ↑ [目次]へ戻る | [4. 計算や処理を行わせる: 3) 「使う」エレメントと「見る」エレメント]へ進む →
■このページで説明している内容
a) 「ここだけ」スクリプト
b) 「ここから」スクリプト
c) 利用例
PASSCELL Personalでは、ノードごとに利用目的と動作が異なる2種類のスクリプトを記述することができます。
a) 「ここだけ」スクリプト
「ここだけ」スクリプトは、記述したノードでのみ実行されるスクリプトです。
通常のスクリプトは、ここに記述します。
(図4.2.a-1) 「ここだけ」スクリプト欄
(図4.2.a-2) 「ここだけ」スクリプトの記述例
b) 「ここから」スクリプト
「ここから」スクリプトは、記述したノードに加え、そのノードの子孫ノードでも実行されるスクリプトです。
このスクリプトは、同じ計算や判断を複数のノードで繰返し行う場合に利用します。
(図4.2.b-1) 「ここから」スクリプト欄
(図4.2.b-2) 「ここから」スクリプト欄の記述例
c) 利用例
「ここから」スクリプトの具体的な例をご紹介しましょう。
「ここから」スクリプトの利用時に注意しなければならない点は、同じスクリプトを異なるノードで利用する、という点です。
つまり計算や判断にエレメントを使う場合、同じエレメント名を使うことになるため親ノードでのエレメントか、自ノードでのエレメントかをはっきり使い分ける必要があります。
この目的のために利用するのが、修飾子 "super."です。
親ノードと自ノードに同じ名前のエレメントがある場合、
・エレメント名そのまま表記すれば、自ノードのエレメント
・エレメント名の前に、"super."をつければ親ノードのエレメント
としてスクリプト上で書き分けることができます。
以下に、具体的なサンプルをご紹介します。
----------
i) 一週間おきの日付を表示する
以下のような定義で2つノードを記述します。
[親ノード]
ここだけスクリプト
日付 = "2006/08/15";
[子ノード]
ここからスクリプト
日付 = super.日付 + 7;
Label = "今日は" + 日付 + "です。";
(図4.2.c-1) 「一週間おきの日付を表示する」サンプル (1)
このように記述すると、2つ目のノードの子ノードとして新規ノードをつくるだけで、ノードラベルに表示される日付が1週間分ずつ進んでいきます。
(図4.2.c-2) 「一週間おきの日付を表示する」サンプル (2)
新規ノードにはスクリプトを記述していませんが、2番目のノードに記述した、「ここから」スクリプトがそれぞれのノードで実行され、親ノードのエレメント"日付"に7日を加算した日付を自ノードのエレメント"日付"とし、ラベルに表示させています。
これは、新しく作ったノード上にマウスを置き、しばらく待つと表示される『このノードで実行されているスクリプト』の表示からも確認することができます。
(図4.2.c-3) ノードで実行されているスクリプトの表示
ii) ノードを整列させる
以下のような定義で2つノードを記述します。
[子ノード]
ここからスクリプト
X = super.X;
このような定義が書かれたノードは、親ノードを移動させると子ノードが同じX座標位置に移動します。
(図4.2.c-4) 「ノードを整列させる」 サンプル (1)
(図4.2.c-5) 「ノードを整列させる」 サンプル (2) 親ノードをドラッグして移動させると子ノードもついてくる
← [4. 計算や処理を行わせる: 1) スクリプトの基本ルール]へ戻る | ↑ [目次]へ戻る | [4. 計算や処理を行わせる: 3) 「使う」エレメントと「見る」エレメント]へ進む →








