ちょっとメモ。
Expression Webのビヘイビアに用意されているイベントは
- onclick
- ondblclick
- onkeydown
- onkeypress
- onkeyup
- onmousedown
- onmousemove
- onmouseout
- onmouseover
- onmouseup
ビヘイビアを挿入したら、既定値では「onclick」になり、その要素をクリックしたときに動作する。
onmouseoverだと、要素に触れたとき、onmouseoutは、その要素から離れたとき、onmousemoveは、 その要素内でちょっとでもマウスを動かしたとき、onmousedownはマウスの左ボタンを押しているとき、onmouseupは、 マウスの左ボタンを離したときに発生する。
onkyepressは、キーボードを押したとき、onkyedownは、キーボードを押し続けているとき、onkyeupは、 キーボードから離したとき?
レイヤーを使って、「プロパティの変更」を使って、別のレイヤーを表示・非表示をすることができるけど、 一つずつイベントを作成してあげないとおかしいことになる。
layer1とlayer2が存在するとしよう。
- layer1に触れたときにlayer2を表示するようにするには、まず、既定値でlayer2を非表示にする必要がある。 そのためには、「レイヤー」作業ウィンドウを表示しておく。
- レイヤー作業ウィンドウで、layer2を非表示にするように設定する
- layer1に触れたときにlayer2を表示するには、 layer1を選択した状態でビヘイビアの挿入→プロパティの変更を選択
- 対象となる要素を「layer2」にして、[表示]ボタンをクリック
- 「表示する」を選択して[OK]ボタンをクリックする
- 「MouseOutイベント時に元に戻す」にチェック
すると、layer1からマウスが離れたときに元に戻るようになる。
しかし、この状態だと、layer2に触れたときにそのレイヤーが消えてしまうということになる。したがって、 「MouseOutイベント時に元に戻す」を有効にしたらまずいことになる。
そこで、そのチェックを外した状態でビヘイビアを作成し、layer2を選択した状態でビヘイビアの挿入を行う。 layer2からマウスが外れた場合にそのlayer2を消すには、プロパティの変更で、onmouseout時に「非表示」にするとOK。
しかし、ここでも問題が発生。
仮にlayer1に触れた後に、layer2に触れずにlayer1からマウスが外れた場合は、 ずっとlayer2が表示することになる。
やっぱり、レイヤー内に個別に要素を作って一つずつ設定しておかないと、思い通りにいかないんだよね…。


