AS3でプルダウンメニュー(ActionScript3.0勉強中! #3)
1年以上前の記事です。内容が古い可能性があります。
以前、ActionScript2.0を使ってプルダウンメニューを作りました。
ところが時代はあっという間にActionScript3.0に。
そこで、こいつを、ActionScript3.0に移植してみることにしました。
【PR】リファレンス本買いました。
ActionScript3.0 ポケットリファレンス (POCKET REFERENCE)
著者:馬場 ぎんが
販売元:技術評論社
発売日:2008-08-29
おすすめ度:![]()
レビューを見る
その前に、ActionScript2.0でのプルダウンメニューのおさらい。
まず、プルダウン用のムービークリップを作成。
それと、マウスオーバー用の透明のムービークリップも作成。
さらに、もととなるボタンを作成。
マウスオーバー用のムービークリップにマウスが乗っている間は、プルダウン用のムービークリップを通常再生、乗っていない間は逆再生。
それを、hitTestメソッドおよび_totalframesプロパティで制御する。
といった流れのプログラム。
ActionScript2.0の時はスクリプトがいろんなところに分散しちゃっていましたが、ActionScript3.0になってまとめてひとつのフレームに書くことができるようになりました。
スクリプトを書く場所はプルダウンメニューのアニメーションをひとまとめにしたムービークリップの最初のフレームです。
今回は「pulldown」というムービークリップを作ったのでその最初のフレームに書きます。
なお、「pulldown」にはメニューが下まで行った状態のアニメーションを作っておきます。 
準備ができたところでスクリプトを紹介します。
2 : var nMove:int = 0;
3 : this.addEventListener(Event.ENTER_FRAME,moving);
4 : function moving(e:Event):void {
5 : if (d_mouse.hitTestPoint(stage.mouseX,stage.mouseY,true)) {
6 : nMove = 1;
7 : } else {
8 : nMove = -1;
9 : }
10 : var nNextFrame:int = this.currentFrame+nMove;
11 : if (1<=nNextFrame && nNextFrame<=this.totalFrames) {
12 : this.gotoAndStop(nNextFrame);
13 : } else {
14 : nMove = 0;
15 : }
16 : }
行頭の数字は分かりやすいように入れたもので実際は書く必要はありません。
以下解説
1 : まずはムービーをとめる。
2 : 「nMove」に整数値として「0」を代入する。
3 : 「addEventListener」でAS2.0の「onClipEvent (enterFrame)」と同等の処理(フレームが変わるごとに関数を実行)をさせる。
4 : 「addEventListener」で実行させる関数を設定。以下、その関数。
5 : もし、マウスがムービークリップ(d_mouse)に重なっていたら、(マウスオーバー用のムービークリップのインスタンス名を「d_mouse」としていることが前提)
6 : 「nMove」を「1」にする。
7 : マウスがムービークリップ(d_mouse)に重なっていなければ、
8 : 「nMove」を「-1」にする。
10 : 「nNextFrame」に「currentFrame(現在表示されているフレーム番号)」+「nMove」を代入する。
11 : 「nNextFrame」がアニメーションのフレーム数を超えたり、マイナス値になったりしないかぎり、
12 : 「nNextFrame」で指定されたフレーム番号に飛ぶ。
13 : 「nNextFrame」がアニメーションのフレーム数を超えたり、マイナス値になった場合は、
14 : 「nMove」を「0」にしてアニメーションを止める。
以上。
2.0の時との変更点は以下のとおり、
- 「onClipEvent (enterFrame)」を「addEventListener(Event.ENTER_FRAME,関数名)」に。
- 「hitTest」が「hitTestPoint」に。
- 「_currentframe」が「currentFrame」 に。
- 「_xmouse」「_xmouse」がそれぞれ「mouseX」「mouseY」に。
- 「_root」、「_parent」も使えない。(それぞれ「root」、「parent」に)
その他もろもろ。
なんだかんだいってかなり変わってますね。
□ FLASHでプルダウンメニュー(ポップアップメニュー) スクリプト編
□ AS2.0以前との違い(ActionScript3.0勉強中! #1)
□ ビルトインクラスとは(ActionScript3.0勉強中! #2)
アドセンス広告メイン
関連記事
-
-
Flash完全終了のお知らせ。むしろ教えているところは貴重【Webデザイン】
1年以上前の記事です。内容が古い可能性があります。実は、以前勤めていた職業訓練校 …
-
-
複数フレーム(全フレーム)、複数レイヤー(全レイヤー)のオブジェクトをまとめて移動・拡大する方法【Flash】
1年以上前の記事です。内容が古い可能性があります。Flashで複数フレーム(全フ …
-
-
Flash PVは音声(BGM)取り込みに注意
1年以上前の記事です。内容が古い可能性があります。本来は「Adobe Premi …
-
-
ツイッター(twitter)botを「さくらインターネット」に設置
1年以上前の記事です。内容が古い可能性があります。熊谷市のツイッターポータルサイ …
-
-
背景(バックグラウンド)のイメージをモニター(ウインドウ)のサイズによって変える(レスポンシブルデザイン)Webサイトの作り方【CSS3コーディング】
1年以上前の記事です。内容が古い可能性があります。今、作っている某総合福祉センタ …
-
-
PHPでパーミッション(実行権)の設定が必要ない理由
1年以上前の記事です。内容が古い可能性があります。Webテクノロジーも日々進化し …
-
-
Flashな日々
1年以上前の記事です。内容が古い可能性があります。今日はFlash漬けです。 ア …
-
-
WordPress3.4にアップデートしたらカスタムフィールドで入力した項目が表示されなくなった
1年以上前の記事です。内容が古い可能性があります。つい先日、WordPress( …
-
-
Flashでプルダウンメニューを作ってみた
1年以上前の記事です。内容が古い可能性があります。過去ログの「Flashでプルダ …
-
-
Internet Explorer 7にGoogle maps APIのバグ?
1年以上前の記事です。内容が古い可能性があります。Google Maps API …







