- 2008-05-26 (月)
- tutorial/data
fromhttp://nodebox.net/code/index.php/Variables
Variables(変数)はコンピュータのメモリに値を格納する場所である。
変数をダンボール箱のように考えることが出来る。
箱の中に何か入れたり、ストレージの為に片付けたり、箱からアイテムを検索したり出来る。
通常、何が入っているかを覚えておく為に、ラベルや、ある種のコードを箱の中に置く。
それは変数と同じである。
どのような変数も名前と値を持つ。
名前は箱のラベルのようである。
それは、アイテムや値が変数の中に何があるかを素早く思い出させる。
ちょうど箱のように、変数はNodeboxで役に立ついろいろな物、テキストの断片、重要数値、フォントの名前色のリストなど、を保持することが出来る。
変数を考えるもう一つの方法はこれらをスティッキーズのように考えることである。
Why use variables
値の再利用を考えるなら、変数に格納する。
もし、描画しようとしているそれぞれの矩形が100ピクセル幅だとしたら、数値100を格納した変数を格納し、それぞれの矩形に何が幅の変数なのかを見に行くように呼ぶことは良いアイデアである。
この方法だと、気が変わって矩形の幅を変える時、それぞれの矩形が変数を見ているので、幅の変数を変更するだけです。
心配は無用です。いくつかのサンプルに挑戦すれば解決するだろう。
Declaring variables
スクリプト上の任意のポイントで変数を宣言でき、NodeBoxが既に要求した名前(rectやfor等)以外なら好きな名前を付けられる。
通常、変数がどのような情報を入れているかわかる何かで、名前を選ぶ。
適切で短い名前を選びましょう。
theWidthOfAllRectanglesと12回もタイプするのが好きな人はいません。
我々が良い変数名だと考え、どんな値も割り当てるに好ましい変数は、このように簡単です。
NodeBoxが変数がどんな値を入れてあるか分かるような、小さなメモ用紙であり続けるようにする。
width = 100
rect(10, 10, width, 30)
変数はパラメータとして使用される。
NodeBoxはそれが含む全ての値をルックアップする。
このサンプルでは、矩形は座標(10,10)、幅100高さ30で描画される。
Changing variables
スクリプトの途中で変数の値を変更できる。
変更すると、古い値は破棄され、それから先変数は新しい値を含む。
最初の矩形の幅は100、変数の値が20に変更されると、続く二つの矩形では、新しい値を使用し、幅20になる。
width = 100
rect(10, 10, width, 30 )
width = 20
rect(120, 10, width, 30)
rect(330, 10, width, 30)
NodeBoxの出力結果(画像のため略)
Calculations with variables
変数に数字を入れると、乗算、加算といった数学的なオペレーションを行える。
例えば、それぞれのテキストの位置について計算したがっていない時、テキストの位置を決めるのにこれは不可欠です。
むしろ、パラグラフテキストはタイトルをきちんと下げるべきで、タイトル字体サイズが変化すると、パラグラフテキストはそれ自体で移動すべきである。(意味不明になっちった)
従って、パラグラフの垂直位置はタイトルの垂直位置に従属であるべきです。
count = 10
print count
>>> 1
count += 5
print count
>>> 15
x = 30
y = 30
quote = "Nicely on the left"
text(quote, x, y)
y += textheight(quote)
quote = "Nicely below each other"
text(quote, x, y)
Where do variables live?
どのスクリプトも自身のメモリーストレージを持つ。それは箱やノートパッドの倉庫である。
従って、変数の特定の値は、(他のスクリプト内ではなく)、利用しているスクリプト内だけで知られている。
Predefined variables
NodeBoxはスクリプトの状態についての情報を含む、あらかじめ定義された変数を持つ。
これらの変数は見られるだけで、変更できない。
WIDTH: the width of the drawing area HEIGHT: the height of the drawing area PAGENUM: the current page being exported in a multi-page export. FRAME: the current frame in an animation.
いくつかの変数はインタラクティブアニメーションの作るために使うことが出来る。
MOUSEX: the horizontal location of the mouse cursor MOUSEY: the vertical location of the mouse cursor mousedown: is True when the mouse button is pressed, False otherwise keydown: is True when a key is being pressed, False otherwise key: the last key pressed keycode: the integer keycode of the last key pressed KEY_UP, KEY_DOWN_ KEY_LEFT, KEY_RIGHT, KEY_BACKSPACE contain the keycodes for the arrow keys and the backspace key.
The variable panel
変数パネルはスライダ、テキストフィールド、チェックボックスといったヴィジュアルをスクリプトに表示する。
変数スライダーをドラッグすると、オンザフライで値が変化し、描画エリアの出力が変化する。
スクリプトを再度Runしない限り、スクリプト上でのどのようなrandom()も保有される。
言い換えると、数値を変更した時や、スライダーを動かした時ではなく、スクリプトが走らせた時、randomの値が変化する。
変数パネルに変数を加えるためのコマンドはvar()コマンドである。
var(name, NUMBER, default, min, max)
var(name, TEXT, default="hello")
var(name, BOOLEAN)
var(command, BUTTON)
他の変数と同じようにスクリプト内で、name変数を使うことが出来る。
数値はスライダー、テキストは入力フィールド、真偽値はチェックボックスを作る。
ボタン用のcommandパラメータは、ボタンが押された時にコールされる為の、スクリプト内のコマンド名である。
The variable panel is inspired on Bob Ippolito's widget drawer in the original DrawBot.