このflash講座は,flashソフトを用いてflashアニメをスクリプトで制作し無料で公開したものです![]() |
||
FLASH講座 ーアクションスクリプトの実践的事始めー
|
||
| ムービークリップの開始・停止をユーザー(ムービー閲覧者)にゆだねる場合には動作用ボタンが使われます。 今回は、ステージ上にボールが円形を描いて回っているムービーをボタン操作で回転を開始させたり、停止させたりする方法についてのflash講座です。 もちろん、ここで選んだムービーは一例であり、他のいろいろなムービーに共通して使える方法でもあるのです。 |
||
| モーショントゥイーンで作成した回転体の場合 ボールが回転するムービーを以下の要領で作成する (1)ステージに楕円ツールでボールを描き配置する(キャンバスサイズ:280*300、12fps) (2)ボールをシンボルに変換(ムービークリップ)インスタンスを「ball」とする (3)インスタンスをダブルクリックして編集画面に入り、ballを選択してシンボルに変換する(4)変形ツールで基準点を回転時にボールが描く円形の中心にドラッグ&ドロップで移動させる。 (5)FRAME 1 で右クリック「モーショントゥイーンの作成」 (6)FRAME 20 で「キーフレーム挿入」 (7)FRAME10あたりで矢印をクリックし、プロパティーインスペクタの「回転」で、 時計回り、1回にチェックを入れる (8)アクションパネルでFRAME 1にstop();(停止状態でムービーを開始させるため) FRAME 20に this.gotoAndPlay("1"); を記入(スムーズに回転させるため) 次いで、キャンバス下方に STARTとSTOPの2つのボタンを配置し、シンボルに変換する ここでのボタンは、矩形ツールで角丸長方形を描き、静止テキストで文字をのせている 角丸の書き方:矩形ツールアイコンをダブルクリックしてポイント指定する |
||
| //STARTボタンのスクリプト on(release) { _root.ball.play(); } //STOPボタンのスクリプト on(release) { _root.ball.stop(); } (注)on(release) はマウスがクリックされて放たれたときの意で、on(press) のクリックされたときよりも感触的にアクションのスタートには向いている。 _root.ball.play();は、メインのタイムラインに置かれたballというインスタンスの再生を開始せよという意。 _rootは絶対パスでターゲットを指定するときの元となる。 |
||
| なお、_root.ball.stop();はplay中のFRAMEでストップする。 初期状態(FRAME1)に戻して止めるときは、_root.ball.gotoAndStop("1"); とする。 アクションスクリプトで作成した回転体の場合 アクションスクリプトのお勉強の曲線移動で示したように、アクションスクリプトでballを回転させることが出来る。 このアクションは、上の場合と同様なスクリプトでは停止させることが出来ない。 この場合は、モーショントゥイーンのお勉強の回転で示したように、flag(標識)を立ててplay、stopを判断させる必要がある。 上例と同様にキャンバスにボールと2つのボタンを配置し(キャンバスサイズ:280*300、36fps)、以下のようにスクリプトを付記する。 |
||
| //ボールのスクリプト onClipEvent(load) { kaku=0; } onClipEvent(enterFrame) { if (flag==1) { this._x=120+75*Math.cos(kaku/30); this._y=90+75*Math.sin(kaku/30); kaku+=3; } } //STARTボタンに on(release) { _root.ball.flag = 1; } //STOPボタンに on(release) { _root.ball.flag = 0; } |
||
| なお、青いボタンは一つのボタンで、再生、停止を切り替える例として示した。 この場合も、一見一つのボタンに見えるが、START、STOP二つのボタンを重ね合わせている(レイヤーを分けて)。 それぞれのボタンのスクリプトを以下に示す。 //STARTボタン; on(release) { _root.ball.flag = 1; mx.behaviors.DepthControl.sendBackward(this); // 一つ背面へ } //STOPボタン; on(release) { _root.ball.flag = 0; mx.behaviors.DepthControl.sendBackward(this); // 一つ背面へ } これは単に、ボタンを重ね合わせて、クリックされるたびに、背面に移動させて切り替えているだけである。 |
||
| (追記)「上記アクションスクリプトで作成した回転体の場合」のスクリプトは、flagを立てずに以下のように記述してもよいことに気がついたので、記述する。 ballには記述なし。 |
||
| STARTボタンに onClipEvent(load) { kaku=0; } on(release) { _root.onEnterFrame=function() { _root.ball._x=120+75*Math.cos(kaku/30); _root.ball._y=90+75*Math.sin(kaku/30); kaku+=3; } } |
STOPボタンに on(release) { _root.onEnterFrame=function() { _root.ball._x+=0; _root.ball._y+=0; } } |
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - -
|
||
| HOME Flash講座総リスト flash action script 基本編(5) | ||
![]()