- ベストアンサー
ActionScript3.0に書き換えたい
- Flash CS4&AS3.0を始めたばかりの全くの初心者です。Flashは沢山のサイトを自分なりに置き換えて作成していますが、ASは殆どが1.0&2.0になっています。
- 今後のことも考えてAS3.0で作成したいのですが、まだまだ初心者の私には思うように書き換えできません。ひとつずつ作成しながら理解するのが早道ではないかと、まずひとつをクリアしたいと思います。
- 上記のサイトのASを3.0に書き換えを教えて頂ければ幸いです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> 上記のサイトのASを3.0に書き換えを教えて頂ければ幸いです。 書き換えると言ってもその前にスクリプトを書く場所を変えないといけませんし, それに応じてムービーの構造自体も変える必要があると思います。 その作り替えたムービーの 「ムービーの構造」 や 「スクリプトを書く場所」 によって, ActionScript は全く変わりますよ。 【下の図】↓ のように, ステージ上に 「menu_0」~「menu_4」 というインスタンス名を付けた5つのムービークリップがあったとします。 その場合で, なおかつそれら5つのムービークリップが存在するフレームにスクリプトを書くのでしたら, 次のようにすればできます。 ------------------------------------------ // 変数 speed の値を -3 に設定 var speed:Number = -3; // 関数 moveMC の定義(毎フレーム実行する関数) function moveMC(evt:Event):void { evt.target.V = evt.target.V*0.8-(evt.target.M-evt.target.y)/speed; evt.target.y += evt.target.V; } // 関数 onOver の定義(ロールオーバーしたときに実行する関数) function onOver(evt:MouseEvent):void { evt.target.y = evt.target.M-10; } // 変数 i を 0~4 で 1 ずつ加算してループ for (var i:int=0; i<=4; i++) { // menu_○ 内の変数 V に 0 を代入 this["menu_"+i].V = 0; // menu_○ 内の変数 M に menu_○ の 初期y座標 を記録 this["menu_"+i].M = this["menu_"+i].y; // menu_○ に毎フレーム実行するイベントリスナーを登録 this["menu_"+i].addEventListener(Event.ENTER_FRAME,moveMC); // menu_○ にロールオーバー時に実行するイベントリスナーを登録 this["menu_"+i].addEventListener(MouseEvent.ROLL_OVER,onOver); } ------------------------------------------ 参考:「配列アクセス演算子」 http://www.google.co.jp/search?hl=ja&source=hp&q=%E9%85%8D%E5%88%97%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E6%BC%94%E7%AE%97%E5%AD%90 ======= 5つのムービークリップ内のタイムラインのフレームにスクリプトを書く場合は当然スクリプトは変わります。 また, ヘルプなどにあるようなドキュメントクラスのクラスファイルにする場合も当然スクリプトは変わります。 その他, MovieClipクラスを継承するようなカスタムクラスを作る場合も当然スクリプトは変わります。
お礼
ご教示頂き有難うございました。 試行錯誤の連続でやっと自分の思い通りのものが出来上がりました。 今後も宜しくお願い致します。
補足
BlurFiltanさんの回答は、いつも参考にさせて頂いています。私共、初心者にとって心強いお方で本当に感謝しています。 微妙にバウンドするように数値を調節しましたところ私の思っているものに出来上がりました。有難うございます。 配列アクセス演算子も参考になり、いろいろ試したいと思います。 実は此のバウンドメニューを利用して下記のサイトで微妙にバウンドする1本のメニュープレートを参考に作成しています。 以前、BlurFiltanさんが他の方の質問に回答されたので、ご存知かと思います。 http://www.rideback-anime.jp/rideback.html プレート上に配列したムービーボタン?です。 マウスオーバーで上下に動作するボタンを作成中です。 このバウンドするメニューと原理は一緒だと思うのですが・・・ 他に簡単に出来る方法がありましたら教えて頂ければ幸いです。