-PR-
解決済み

FlashMXでマックOSXドック風ボヨヨンメニュー。ボタンにならない。

  • すぐに回答を!
  • 質問No.856343
  • 閲覧数216
  • ありがとう数4
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 57% (15/26)

こんにちは。見ていただいた方アリガトウございます。

只今フラッシュMXでマックOSXドック風のメニューバーを作っています。オンマウスで拡大、左右のクリアランスを維持するオブジェクトを作って並べてあるのですが、最後にどうしてもボタンになりません。クリックのアクションを差し込むと今度は動かないただのボタンになってしまうのです。

説明が少ないですが、経験者の方いたらよろしくおねがいします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル13

ベストアンサー率 85% (666/776)

Dock は、選択されているアイコンとその近くのアイコンを拡大したり、メニューを出したり隠したりする機能があり、これと同等のものを作る方法はいろいろ考えられるかと思いますが、全部は書ききれませんので。
ここではとりあえず、基本的な

 ・アイコンにカーソルが乗った時、アイコンを拡大
 ・アイコンからカーソルが離れた時、アイコンを元のサイズに戻す
 ・クリックされた時、ボヨヨンアニメ(^^;)
 ・アニメ終了後、ページを表示

の作り方だけ紹介させていただきます。


Flash MX からは、ムービークリップをボタンのように使えるようになりました。動く(座標が変わる)ボタン・外観が変わるボタンなどは、ムービークリップを利用した方が簡単です。
アイコンのムービークリップの中に、停止状態(ボタンシンボルでいうところの”アップ”にあたる)と、クリックされた時のアニメをまとめて作ります。普段は停止状態のフレームを再生しておきます。
アイコンにマウスカーソルが乗った/離れた時は、今回はとりあえずスクリプトで変形しますが、同じくムービークリップ内に拡大/縮小アニメを作って、アニメにすることもできます。
クリックされたら、ボヨヨンアニメのフレームを再生します。
MacOS X の Dock は、アイコンのアニメの終了とほぼ同時にアプリケーションの読み込みが始まります。これを真似して、アニメ終了後に getURL でページを表示させることにします。
ボヨヨンアニメが 20 コマくらいだとすると、アイコンのムービークリップの構成は、大体、次のようになります。

 ・フレーム1:停止状態の絵とアクション( stop(); とその他初期設定)
 ・フレーム2~21:ボヨヨンアニメ
 ・フレーム21: getURL アクション


フレーム1で、ボタンにカーソルが乗った時/離れた時と、クリックされた時に呼び出す関数を定義します。これは、次のようなスクリプトになります。
(↓このスクリプトをコピーして使う場合は、各行の行頭に入っている全角のスペースを、半角のスペースかタブに置き換えてください。このまま使うとシンタックスエラーになります)


 //カーソルが乗った時の処理
 this.onRollOver = function ()
 {
  //ボタンを1.5倍に拡大
  this._xscale = 150;
  this._yscale = 150;
 };

 //カーソルが離れた時の処理
 this.onRollOut = function ()
 {
  //ボタンを元のサイズに戻す
  this._xscale = 100;
  this._yscale = 100;
 };

 //クリックされた時の処理
 this.onPress = function ()
 {
  //ボヨヨンアニメを再生
  this.gotoAndPlay( 2 );
 };

 //普段はこのフレームを表示
 stop();

 //ボタンイベントを検出可能にする
 this.enabled = true;


最後の this.enabled = true; は、ボタンと同じイベント( onRollOver、onPress など)が発生した時に、イベントを検出できるようにするかどうかの設定です。
クリックされるとボヨヨンアニメが始まります。しかし、この時にロールオーバー・ロールアウトイベントが発生すると、拡大/縮小の処理が呼び出され、アニメ中にアイコンが縮んでしまうこともあり得ます。
フレーム2に

 //ボタンイベントが発生しても無視する
 this.enabled = false;

と設定しておくと、ボタンイベントが発生しても無視されますので、アニメ中にロールオーバー/アウトイベント発生時の関数が呼び出されるのを防ぐことができます。
アニメ終了後にページを表示させますので、フレーム 21 に getURL アクションを設定します。あとはシンボルのインスタンスを配置して、完成です。


getURL に固定のアドレスを設定すると、そのページ専用のアイコンになりますが、変数を利用して同じムービークリップから複数のアイコンを作ることも可能です。
長くなってすみませんでした。
不明な点がありましたら、補足してください。
お礼コメント
nashicana

お礼率 57% (15/26)

出来ましたあ!
元のスクリプトも本から引用したものだったのですが、上記のものを参考にシェイプアップしたら、希望の動きになったきました。どうもありがとうございます。
投稿日時 - 2004-05-18 11:53:54

その他の回答 (全1件)

  • 回答No.1
レベル8

ベストアンサー率 73% (19/26)

こんにちは。
ちょっと状況が漠然としていてレスがつきにくいような気がします。

拡大・縮小の動作はできているのですよね?
であればそれにクリックしたときのアクションを追加するのは難しく無いように思います(メニューボタンがムービークリップでもボタンシンボルでも)。

にもかかわらず、「動かないただのボタン」になってしまう、という状況が発生するということは何か特殊なやり方を採られているようにも思われます。
スクリプトコードを掲載されたらいかがでしょうか。
お礼コメント
nashicana

お礼率 57% (15/26)

ありがとうございました。
どうやら「入れ子?」とかいう概念の訳がわからず、
いろんなものをバラバラに作っていたようです。今は一つのムービーに動作もボタンスクリプトも入っているので動くようになりました。
投稿日時 - 2004-05-18 12:01:42


このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


開業・独立という夢を持つ人へ向けた情報満載!

ピックアップ

ページ先頭へ