■五年生三学期■

 イベントリストにイベントを追加するには、ファイルリストから追加するか、イベントリストでアクションを挿入するわけですが、
それらもじつはRフレームアクションのひとつなのです。
 そのいくつかは「アクション スクリプト」として挿入することができます。

 それでは、hensu.pflを開いてください。

◆停止◆
 stop()メソッドを使います。
 フレーム6の「アクション 停止」を「アクション スクリプト」に変更し、↓のようにスクリプトを書きます。


 これで「停止」と同じ動作をするスクリプトが書けました。
 この場合のthis.は_root.のことですので、_root.stop();でも同じ意味です。

 じつは、主語なしでstop();だけでもよいのですが、
ASの記述法が、主語を必要とする「オブジェクト指向」というものに切り替わってきているので、
フラッシュの今後の動作を保障するためにも、主語を省略しないようにしてください。


◎アクションとメソッドの違い◎
 簡単に言うと、主語が必要ないものがアクション
主語が必要なものがメソッドです。
 今までは「停止」は、主語を必要としないstop();というアクションでしたが、
「"主語".stop();」で表記する場合のstop();はメソッドと呼ぶようになったわけです。

 つまり、今までは、
1.主語を必要としないアクション
2.主語を必要とするアクション
3.主語を必要とするけど省略することができたアクション

…というふうに一緒くたにしていたのを
1をアクション、2・3を主語を必要とするメソッドというように分けるようになったのです。

 現在は、3を1として使えますが、今後どうなるか判りません。

◎オブジェクト◎
 オブジェクトとは、主語になりえるもののことです。
パラフラのファイルリストに置くことができるもの、つまり画像・テキスト・音声ファイル・スプライト。

 さらに「オブジェクト指向」では、_root.もひとつのオブジェクトとして扱います。

 Math.floorのMathも「数値演算を行う」ためのいわば主語として扱われ、オブジェクトということになっています。

◎コマンド◎
 コマンドは、アクションとメソッドによって指示される命令です。
「;」で閉じられる指示式によって下されます。

 メソッドはオブジェクトを「.」で繋げることによってコマンドを下します。
例、this.stop();、_root.gotoAndPlay();

 アクションは単独でコマンドを下します。
例、trace()
 またアクションでもif文のように{}内の指示式としてコマンドを書くこともあります。
例、if(){指示式}


◆再生◆
 play()メソッドは「アクション 再生」と同じですが、
使う必要はないので説明は省略します。


◆ラベルへジャンプ◆
 gotoAndPlay()メソッドは、
()内にフレームのナンバーを書けば「フレームへジャンプ」
()内に"ラベル名"を書けば「アクション ラベルへジャンプ」と同じです。
 フレームのナンバーは数値の変数扱いなので、文字列の変数であるラベル名のように""で囲む必要はありません。

 では、↓のように複数指定をして、「アクション 停止」を「アクション スクリプト」に変更します。


 そして、それらのスクリプトエディタに↓のようにthis.gotoAndPlay(1);と書き込みます。


 thisという主語(オブジェクト)を付けたメソッドではなく、
それを省いたgotoAndPlay()という単独のアクションでも今のところ有効ですが、やはり主語を書く癖はつけてください。
 先々無効になることはなかったとしても、何を省略しているかを知っておくことが今は大事です。
 もちろん、この場合のthisは_rootというルートのタイムラインを指しています。

◆プロパティ◆
 プロパティは、「オブジェクトの情報」です。
 例えば、イベントのプロパティで設定できる描画位置の座標xとyは、_x_yというプロパティで表されます。
 他には角度を表す_rotationと透明度を表す_alphaくらいを覚えておけばいいでしょう。
◆パス◆
 ルートのタイムライン_rootにはスプライト(仮にchild)を置くことができ、
さらにそのスプライトchildのタイムラインにもスプライト(仮にgrandchild)を置くことがでました。

 grandchildを絶対パスで表すときは「.」で繋げ、_root.child.grandchildと記します。
この意味は「_rootのタイムライン上にあるchildのタイムライン上にあるgrandchild」です。

 メソッドやプロパティも「.」で繋げられますので、grandchildは、
次に何が来るかで「そのタイムライン」を表すか「スプライトそのもの」を表すかが違ってきます。

1.メソッドが続く場合は「そのタイムライン」のこと
  例
_root.child.grandchild.stop();
↑は、スプライトgrandchildのタイムラインを停止するというコマンド。

2.プロパティが続く場合は「スプライトそのもの」のこと
  例
_root.child.grandchild._x=50;
↑は、スプライトgrandchildそのものの描画位置のX座標を50にするというコマンド。

注意:この場合のスプライトの名前は、
ファイルリストでネーミングするスプライト名ではなく、
イベントリストでネーミングするインスタンス名です。



 では、ファイルリストに「おみくじ」(ID0013)というテキストを作りましょう。
次にスプライト「くじ」(ID0014)を作り、その中にテキスト「おみくじ」を追加します。


 通常画面にし、輝度を変化させておきます。

 次にルートのタイムラインにそのスプライト「くじ」を↓のようにフレーム1に角度を曲げて配置します。


 インスタンス名を「zKuji」とつけてください。
当小学校では先頭にzを付けるのはインスタンス名です。

 その下に「何もしない」を10フレームカウントと、「アクション スクリプト」を挿入し、
↓のようにRフレームアクションを書きます。
_root.zKuji._rotation=0;


 プレビューしてみましょう。
プレビュー後10フレームカウント経過するとスプライトzKujiの角度が「30」から「0」になります。

 更に、その下に「何もしない」を10フレームカウントと、「アクション スクリプト」を挿入し、
↓のようにRフレームアクションを書きます。
_root.zKuji.stop();


 角度が直ってから10フレームカウント経過すると、点滅も止まります。

 それぞれのスクリプトのzKujiが何を表しているのかを見比べてください。

 フレーム11のスクリプトでのzKujiはスプライトそのもの(を動かした)。
フレーム21のスクリプトでのzKujiはスプライトのタイムライン(を停止させた)。

 ここまでのフラッシュです↓。


◎プロジェクトファイルsample53.pfl

 五年生の過程はこれで終了です。
 六年生に進級してください。

六年生一学期へ

TOPへ

inserted by FC2 system