スポンサーサイト
--.--.-- (--:--) スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
マウスでドラッグ&ドロップ(3)
2005.10.23 (00:32) [ Action Script ]ドラッグ&ドロップtrackback(0)comment(0)
マウスでドラッグ&ドロップ(2)の続きです。
MC"熱帯魚"に記述した、アクションスクリプトの働きについて
具体的に見ていきます。
(2)に続きまして、二文目を見てみます。

on (release) {
stopDrag (); //ドロップ
}


では、最初のon (release) { } は何を指示しているのでしょうか。
一文目と同様に、onは「マウスが重なった状態」を意味するのでしょう。
かつ、release、「クリックを解放した」状態を指定しています。
よってon (release) { A }
「マウスが重なっていてかつクリックを解放したらAする」
一文目で、クリックしたらドラッグが開始されるように指定されているため、
「マウスが重なっていて」ってのは、当たり間えっちゃ当たり前です。


では中身Aに当たるstopDrag () は何でしょうか。
これも英語の通りで、ドラッグを操作を停止するという事でしょう。
ちなみに、()の中身、つまり「何を」と対象を示す部分に
何も記入されていません。しかしstopDrag () が実行される時点では、
もう何かしらをドラッグしているはずです。
そのドラッグという動き自身を停めるだけなので、
わざわざ「何を」書く意味は無いのでしょう。


二つを合体させてると、二文目の意味は、
「マウスが重なっていて、かつクリックを解放したらドラッグを操作を停止する」と成ります。はい、まんまドロップって訳です。



それでは最後の文です。

onClipEvent (mouseMove) {
updateAfterEvent(mouse); // ドラッグをスムーズに
}


コメントには「//ドラッグをスムーズに」と書いてあります。
具体的にどのようにスムーズにしているのか考えて見ます。


まずonClipEvent (mouseMove) { A }です。
これは、()の中に指定された条件(これをイベントといいます)を満たすとき、
Aが実行される。という意味です。
この場合のイベントとはmouseMove、つまりマウスが動いたときです。
よって「マウスが動いたときAする」という訳です。

ではそのAであるupdateAfterEvent(mouse)は何でしょうか。
この命令は()についての表示をフレームレートに関係なく更新する、
という意味を持ちます。()の中身がmouseなので、
マウス自身や、それにドラッグされている物も含めて更新されます。
よって「ドラッグされている物の表示をフレームレートに関係なく更新する」
ってわけですね。


合体させると、最後の文は
「マウスが動いたとき、ドラッグされている物の表示を
フレームレートに関係なく更新する」
という意味に成ります。

もし、この文が記述されていなかったらどうなるでしょうか。
完成したムービーにおいて、観覧者がMC"熱帯魚"をドラッグしたとします。
このムービーのフレーレートは毎秒12フレームなので、毎秒12回表示を
更新している事になります。
ではドラッグしたMC"熱帯魚"を素早く動かしたとしましょう。
まるで点滅するライトを振り回したかの様にチカチカして見えてしまいます。
表示を更新するスピードがマウスの動きについてこれず、一つを表示してから次の表示までに距離が大きく開いてしまうため、連続した動きに見えないわけです。
これを防ぐために、マウスが動くたびに表示を更新する事で、
連続した滑らかな動きに見せています。

どうぞ振り回してください。




以上でASの読み取りは終わりです。
各命令の機能がわかれば、()や{ }の中身を変えてみるだけでも
面白い変化が得られると思います。



スポンサーサイト
prevhome next












トラックバックURL
→http://netlostman.blog31.fc2.com/tb.php/6-9912391b
home
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。