親スクリプトって何?(実践編1)
もどる すすむもどる                 すすむ
親スクリプトって何?(実践編1)
プロパティの定義
親スクリプトの記述
補助ハンドラの記述


凛のかお では今からいよいよ親スクリプトの実践ですね!

豪のかお はい、ではこんな場合を想定してみましょう。

1)ボールが上から降ってくる
2)ステージサイズよりも下に行った場合は、また上から降ってくる

凛のかお ふむふむ、それならなんとかなりそうですね。

豪のかお はい、ではまずは子のプロパティの定義から始めましょうか。ムービースクリプトのウィンドウを開いて下さい。

凛のかお はい、で何から書き始めるんですか?onからですか?

豪のかお いえいえ、propertyと書き始めて下さい。ここがちょっと違うところなんですよ。で、その後にプロパティを自分で決定するのです。

凛のかお 自分で決定するのですか、ええと、何をつけたらいいのかな?

豪のかお まずボールがふってくるんで、その垂直座標と水平座標をプロパティで決めましょう。

凛のかお つまり?

豪のかお つまり

property myH,myV
と書いてみましょう。

凛のかお あれあれ?なんでみんなmyがついているの?

豪のかお 暗黙の了解で、子オブジェクトのプロパティはみんなmyで始めるようにしているんですよ。グローバル変数はgで始まるのと同じですよ。

凛のかお ふぅん、(なんとなく)わかりました。では次は何をするんですか?

豪のかお では次に「親スクリプト」を記述します。これは厳密な書式が決まっています。

on new me
set myH= (なんらかの値)
  ・・・
return me
end
と記述します。最後のreturn meは絶対に書き忘れてはいけません。

凛のかお ふぅん、だったらさっきのプロパティの場合だとこういう風に書けばいいのかな

property myH,myV

on new me
 set myH=(何か)
 set myV=(何か)
 return me
end

ってすればいいのかな?まだ具体的な数字はわかっていないけどね。

豪のかお おっけーです。それで大丈夫ですよ。親スクリプト自体はそんなに長くならないんですよ。陰ながら見守っているというイメージがぴったりきますね。さ、次はそれを動かす場合です。親スクリプトを動作させるスクリプトをかきましょう。

凛のかお それは本で調べたんですよ。ええとnew (script"スクリプト名")でしたっけ?

豪のかお そうですよ。でもそれは1つだけ作る場合でしょ。たいていの場合は何個もつくるので、その手法を覚えておきましょうね。リストを使います。たとえば10個のものをつくとうとした場合は

global gKodomoListと、まずどこかで定義しておきます。

repeat with m=1 to 10
 setAt gKodomoList,m,new(scipt"スクリプト名")
end repeat

凛のかお ううむ、ややこしくなってきたぞぉ……色々疑問が出てきた。なんでリストを使うの?

豪のかお 子どもを管理するときに、リストの中に入れてしまうのが一番簡単な方法なんですよ。今はあまり疑問に思わずに「あ、リスト使うんかいな」程度で軽くかわして下さい。さきほどのスクリプトではsetAtの部分でリストの中に「子」を入れているんです。リストの中身は[,..]というように訳のわからない文字がぎっしりつまっていますが、これがオブジェクトなんだと思って下さい。別にその意味がわからなくてもスクリプトは書けますしね。

凛のかお ふむふむ、そこまではいいとしましょう。

豪のかお では次は補助ハンドラを記述しましょう。

凛のかお よーし、やってやるぜ!

豪のかお 「子」を動かす場合のハンドラはみんな面白い形をしています。
on なんたら meという形になり、み〜んなmeというオマケがついてきます。なんだかおフランスの雰囲気がしますがね。このmeというのは、前回説明したとおりに「子」がこの命令を読んだときには「私がこの命令を実行すると」と理解する訳なんですよ。だからmeで書くのが決まりになっています。

凛のかお ねぇねぇ、ここまでのスクリプトをまとめて、具体的な数字をいれてやっていきませんか?

豪のかお そうですね。では次のページでもっと詳細に決めながらすすめていきましょう。

すすむ次に進む


(c)Akira SAno 1996.1997
一応こんなページでも著作権は佐野彰に存在します
リンクフリーですが、メールでご連絡頂けたら嬉しいです。
homeホームに戻る