
Webデザインには、あなたの知らない「落とし穴」がたくさん。大きなものから小さなものまで、それが及ぼす影響はさまざまだ。カンペキだと思っているあなたのサイトも、実はすでに暗い穴の中かも・・・。
 |
ボタンアクションにおける操作イベントの落とし穴
|
 |
Flashのボタンアクションにおいて、ユーザーからの操作によるイベントには、press、release、releaseOutside、rollover、rollout、dragover、dragout、そしてkeypressがある。基本的にこれらの操作イベントで大抵の動作の再現が可能だが、ダブルクリックをボタンアクションとして再現したい場合は、残念ながら通常のイベント内では対処できない。
そこで、ムービースクリプトを利用して疑似的にダブルクリックの仕組みを再現する。一定の時間内にクリックが2回連続して行われる動作というダブルクリックのギミックを念頭に、まず、一度目のクリックで時間経過の判定を実行させるフラグに値を入れる【1】。次に時間経過の判定をつくる。これにはEnterFrameを利用する。このスクリプトの制限時間内にクリックがあればダブルクリックとして判定し【2】、クリックがなければフラグの値を自動的に元に戻すという仕組みだ【3】。
| |
onClipEvent (load) {
flag = 0;
} |
【1】まず、flagの値をセットする
|
on (release) {
if (flag == 1) {
this.play();
flag = 0;
} else {
flag = 1;
}
} |
【2】最初のクリックでflagに「1」を代入。さらにflagが「1」のときにクリックするとダブルクリックとして判定して、playされる
|
onClipEvent (enterFrame) {
if (flag == 1) {
if (count<30) {
count++;
} else {
flag = 0;
count = 0;
}
} else {
count = 0;
}
} |
【3】flagが「1」になるとカウントスタート。countは「30」を下回る場合は増え続け、「30」を超えるとflagの値を「0」に戻す
解説:マルチカ
(※本文中、及びキャプション内で使用している「<」、「>」は、全角になります。ご注意ください。)