2008年02月29日

ビヘイビアのイベント

ちょっとメモ。

Expression Webのビヘイビアに用意されているイベントは

  • onclick
  • ondblclick
  • onkeydown
  • onkeypress
  • onkeyup
  • onmousedown
  • onmousemove
  • onmouseout
  • onmouseover
  • onmouseup

ビヘイビアを挿入したら、既定値では「onclick」になり、その要素をクリックしたときに動作する。

onmouseoverだと、要素に触れたとき、onmouseoutは、その要素から離れたとき、onmousemoveは、 その要素内でちょっとでもマウスを動かしたとき、onmousedownはマウスの左ボタンを押しているとき、onmouseupは、 マウスの左ボタンを離したときに発生する。

onkyepressは、キーボードを押したとき、onkyedownは、キーボードを押し続けているとき、onkyeupは、 キーボードから離したとき?

レイヤーを使って、「プロパティの変更」を使って、別のレイヤーを表示・非表示をすることができるけど、 一つずつイベントを作成してあげないとおかしいことになる。

layer1とlayer2が存在するとしよう。

  1. layer1に触れたときにlayer2を表示するようにするには、まず、既定値でlayer2を非表示にする必要がある。 そのためには、「レイヤー」作業ウィンドウを表示しておく。
  2. レイヤー作業ウィンドウで、layer2を非表示にするように設定する
  3. layer1に触れたときにlayer2を表示するには、 layer1を選択した状態でビヘイビアの挿入→プロパティの変更を選択
  4. 対象となる要素を「layer2」にして、[表示]ボタンをクリック
  5. 「表示する」を選択して[OK]ボタンをクリックする
  6. 「MouseOutイベント時に元に戻す」にチェック

すると、layer1からマウスが離れたときに元に戻るようになる。

しかし、この状態だと、layer2に触れたときにそのレイヤーが消えてしまうということになる。したがって、 「MouseOutイベント時に元に戻す」を有効にしたらまずいことになる。

そこで、そのチェックを外した状態でビヘイビアを作成し、layer2を選択した状態でビヘイビアの挿入を行う。 layer2からマウスが外れた場合にそのlayer2を消すには、プロパティの変更で、onmouseout時に「非表示」にするとOK。

しかし、ここでも問題が発生。

仮にlayer1に触れた後に、layer2に触れずにlayer1からマウスが外れた場合は、 ずっとlayer2が表示することになる。

やっぱり、レイヤー内に個別に要素を作って一つずつ設定しておかないと、思い通りにいかないんだよね…。

posted by wanichan at 10:52 | Comment(0) | TrackBack(0) | Expression Web