質問: as3でのマウスオーバーに関する質問 flash cs4の初心者です。 教えて!gooは、とても参考になり、試行錯誤しながら習得しています。 此処で見つけた質問の中に出ていたサイトがとても気に入り、趣味で公開しているhpに取り入れたいと思っています。 下記のサイトの character のシーンでマウスオーバーするとイラストが拡大してバウンドし、帯文字もバウンドします。 マウスを外すと元のサイズに戻りバウンドします。 http://www.rideback-anime.jp/rideback.html 初心者の為、ボタン→ムービークリップをモーショントゥイーンを使いどうにかバウンドらしきものが出来ましたが、20点の画像を同じようにするのが大変です。アクションスクリプトが出来ればと思っていますが初心者の為、asが出来ずにいます。 そこでご教授頂きたい事は・・・ as3で上記のサイトのように20点の画像をマウスオーバーで拡大バウンドし、同時に帯文字もバウンドして、マウスを外せば元に戻りバウンドする方法を教えて頂きたく投稿しました。 なにぶんにも初心者ですので詳しく教えて頂けると有り難いです。 説明不足で解りにくいと思いますが、宜しくお願い致します。
回答: メインのタイムラインのステージ上に 「my_mc0」「my_mc1」「my_mc2」「my_mc3」 というインスタンス名を付けた4つのムービークリップを配置したとします。 その場合のスクリプト例↓ --------------------------------------- // tweenクラスとeasingクラスをインポート import fl.transitions.tween; import fl.transitions.easing.*; // 下がった状態の座標の差を設定 var dif_y:number = 15; // 動作にかかる秒数を設定 var sec:number = 0.5; for(var i:int=0;i<=3;i++){ // ムービークリップ「my_mc?」の初期y座標を記録 this["my_mc"+i].sy = this["my_mc"+i].y; // 「my_mc?」ロールオーバー時に関数 mydown を実行 this["my_mc"+i].addeventlistener(mouseevent.roll_over,mydown); // 「my_mc?」ロールアウト時に関数 myup を実行 this["my_mc"+i].addeventlistener(mouseevent.roll_out,myup); } // 関数 mydown の定義 function mydown(e:mouseevent):void{ // tweenクラスのインスタンスを作成 var mytween:tween = new tween(e.currenttarget, "y", bounce.easeout, e.currenttarget.y, e.currenttarget.sy+dif_y, sec, true); } // 関数 myup の定義 function myup(e:mouseevent):void{ // tweenクラスのインスタンスを作成 var mytween:tween = new tween(e.currenttarget, "y", bounce.easeout, e.currenttarget.y, e.currenttarget.sy, sec, true); } --------------------------------------- これはロールオーバーしたインスタンス自体を動かしているので, // 下がった状態の座標の差を設定 var dif_y:number = 15; この値をあまり大きくしないようにするというのが肝腎です。 大きくすると, ムービークリップが動きすぎてロールオーバーしたらすぐロールアウトしてしまうため動きが変になります。 小さいままでも,上からマウスをゆっくり接近させてロールオーバーすると動きが変になります。 (赤上げて 赤下げないで赤上げない??? 状態になる。) 実際には, 親ムービークリップの中に子ムービークリップを作成するなどして, 親ムービークリップにロールオーバーしたときに,その中で子ムービークリップを動かすなどの工夫をした方が良いと思います。 ↑親ムービークリップには 動かないヒットエリアのようなものを 透明な塗りなどで作成しておく。 (中の絵柄は動いてもヒットエリアは変えないようにする) つまり本当は actionscript だけで片付けるのではなく構造をちゃんと作った方が良いでしょう。 === 補足 === === === > flash cs4の初心者です。 & > 20点の画像を同じようにするのが大変です。 cs4 だと「モーションをコピー」・「モーションをペースト」ができますよ。 また クラシックトゥイーンではなくモーショントゥイーンの場合限定では 「モーションプリセットとして保存」し「ウィンドウ」→「モーションプリセット」から あらかじめ保存しておいたモーションを適用させて使い回しもできますが。