• ベストアンサー

ロールオーバーと逆の動き

オールFlashでHPを作っているのですが、ボタンに「ロールオーバーと逆の動き」をつけることができません…。 たとえば、ポインタを重ねると拡大して、ポインタを外すと少しづつ縮小するようなものがつくりたいと思っています。 初心者なのでなるべく簡単な方法が、ありがたいです。 よろしくお願いします。 ちなみに「Flash MX2004」で製作しています。

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

簡単と言えば簡単ですよ。 少し凝ったサイトの Flash であれば, ボタンシンボルのインスタンスをボタンとして使用せずに, ムービークリップインスタンスをボタンとして自作し,使用しているのをかなり見かけます。 ムービークリップ内のタイムラインを次のようにします。  レイヤー 筆・・・|●|●>---->|●|●>---->|●|        ふつう↑ ↑大きくなる ↑小さくなる 「大きくなる」,「小さくなる」というのは, グラフィックシンボルやムービークリップシンボルのインスタンスを, ムービークリップ内でモーショントゥイーンで大きくしたり小さくしたりするのです。 作り方の順序からすると, 「大きくなる」,「小さくなる」という前の「ふつう」の状態の画像やシェイプをグラフィックシンボル もしくは ムービークリップシンボル に変換して, さらにその グラフィックシンボル もしくは ムービークリップシンボル のインスタンスをムービークリップに変換して, ムービークリップ内でモーショントゥイーンさせるという順序の方が良いかもしれません。 とにかく, 上のようなムービークリップを作成します。 レイヤーを1つ追加して,そのレイヤーをスクリプトを記入する専用レイヤーと勝手に決めます。 そしてそのレイヤーの空白キーフレーム1(「ふつう」がある)のフレームに, ------------------- stop(); ------------------- を書いて,フレーム1 で止めるようにしておきます。 「大きくなる」のおおきくなりきったフレームを仮に 10 とすると, スクリプトを記入する専用レイヤーと勝手に決めたレイヤーのフレーム10を空白キーフレームにして, そのフレーム10にも, ------------------- stop(); ------------------- を書いて,フレーム10 で止めるようにしておきます。            stop();     stop();  レイヤー 筆・・・|○      []|○       []|  レイヤー 筆・・・|●|●>---->|●|●>---->|●|        ふつう↑ ↑大きくなる ↑小さくなる そして, メインムービー(ドキュメント)の編集にもどって, 上で作ったムービークリップ自体に次のように書きます。 --------------------------------------------- // このムービークリップにロールオーバーしたとき on(rollOver){ // このムービークリップをフレーム2 に進めて再生 this.gotoAndPlay(2); } // このムービークリップからロールアウトしたとき on(rollOut, dragOut){ // このムービークリップを フレーム11 に進めて再生 this.gotoAndPlay(11); } // このムービークリップをクリックしたとき on(release){ // ★ここにしたい動作を書く★ } --------------------------------------------- これで自作ボタンの完成になります。  // ★ここにしたい動作を書く★ に関してですが, ボタンシンボルのインスタンスは階層を持ちませんが, ムービークリップインスタンスは階層を持ちます。 階層が違うことに注意してください。 もし仮にボタンシンボルのインスタンスに次のように書いていたとします。  on(release){ gotoAndStop(3); } これは, ボタンの存在するタイムラインに対して 「フレーム3 に進めろ」という命令になりますが, ムービークリップの場合,「ムービークリップ内を フレーム3 に進めろ」 という命令になります。 階層が一段階変わりますので, 上のスクリプトをボタンの場合と同じように動作させるには, on (release) { this._parent.gotoAndStop(3); } というように「_parent(親)」階層に対して命令しなければなりません。 もしくは,上のような相対パスではなく絶対パスで, on (release) { _root.gotoAndStop(3); } にしてもかまいません。 ボタンは階層を持たないけど,ムービークリップは階層を持つということに気を付ければ, ムービークリップをボタンにした方が自由に色々なことができるようになります。

CG1979
質問者

お礼

ありがとうございます! 早速試してみます。

関連するQ&A