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)
アドセンス広告メイン
関連記事
-
mixiのチェックボタンをつけてみた【後編】
1年以上前の記事です。内容が古い可能性があります。さて、前回なんとか「mixiチ …
-
外部JavaScriptはひとまとめにしてしまおう
1年以上前の記事です。内容が古い可能性があります。プロット・ファクトリーCMS化 …
-
一度見たFlashを見せない方法 2
1年以上前の記事です。内容が古い可能性があります。□一度見たFlashを見せない …
-
「エポックタイム」とはどんな意味?
1年以上前の記事です。内容が古い可能性があります。久々に現場にてperlプログラ …
-
Flashの時間稼ぎスクリプト
1年以上前の記事です。内容が古い可能性があります。Flashを編集していて、この …
-
Flashでプルダウン(さらにさらに)もう嫌!!
1年以上前の記事です。内容が古い可能性があります。もう、過去の記事を拾ってくる気 …
-
WordPress(ワードプレス)でテンプレートにテンプレートを読み込む方法(インクルードタグ) #wp
1年以上前の記事です。内容が古い可能性があります。WordPress(ワードプレ …
-
cgi(perl)にhtmlを読み込ませる方法
1年以上前の記事です。内容が古い可能性があります。たとえば与えられた変数によって …
-
「Internet Explorer」をクラッシュさせるCSSコード
1年以上前の記事です。内容が古い可能性があります。なんか、他にもありそうですけど …
-
ユビキタスの第一歩、スマホ(スマートフォン)やタブレットで家電が遠隔操作できる「heimcontrol.js」
1年以上前の記事です。内容が古い可能性があります。ユビキタスという言葉は最近あま …