
Webデザインには、あなたの知らない「落とし穴」がたくさん。大きなものから小さなものまで、それが及ぼす影響はさまざまだ。カンペキだと思っているあなたのサイトも、実はすでに暗い穴の中かも・・・。
 |
オブジェクトにクリップイベントを設定する際の落とし穴
|
 |
オブジェクトにクリップイベントを設定する際、どのタイミングで命令を実行させるかを決めることができる。そこで「Load」と「EnterFrame」の違いを理解しておく必要がある。
「Load」はオブジェクトがロードされたら、命令を実行するというもので、オブジェクトが表示されている間は、設定したクリップイベントは機能しない。あらためて実行させたい場合は、そのオブジェクトをキーフレーム上から消して、再度表示させる必要がある【1】。一方、「EnterFrame」はオブジェクトが表示されている間、ずっとその命令を繰り返し実行するというものだ。
ここでは、変数を用いた「Load」と「EnterFrame」の記述方法を紹介する【2】。これはこのオブジェクトがロードされたら「hensu」を「0」にする。そして「hensu」が「0」のままだったら何もしない。ボタンアクションなどで、「hensu」に「0」以外のものが入った瞬間、5フレームに移動という単純なもの。
しかし、「Load」と「EnterFrame」をまちがえて使っていると、いきなり5フレームに飛んだり、ひたすら「hensu」に「0」が入り、それ以外は変わらなくなってしまったりする。
【1】「Load」の実行条件
| |
onClipEvent (load) {
hensu="0";
}
onClipEvent (enterFrame) {
if (hensu==0) {
_root.stop();
} else {
_root.gotoAndPlay(5);
} |
【2】「Load」、「EnterFrame」を使った記述例
解説:マルチカ
(※本文中、及びキャプション内で使用している「<」、「>」は、全角になります。ご注意ください。)