• ベストアンサー

FLASHのボタンによるフレーム切り替えについて

FLASHには、ボタンをクリックすると他のフレームに移る機能があります。(goAndPlay()など) ここで質問です。 http://t.pic.to/xhtrpのように、ボタンをクリックしたら、そのクリック先のフレームが左(あるいは右)から表れて移動するようにしたいのです。 ご伝授ください。

noname#80986
noname#80986
  • Flash
  • 回答数2
  • ありがとう数5

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

書かれていらっしゃる内容が全く Flash らしくありませんし, Flash ではなく日常生活であっても何のことか理解しにくいです。 つまり, ほとんど何を書かれていらっしゃるのかわからない状態です。 わかったのは アニメーションGIF の動きだけです。 また goAndPlay() は オーサリング Flash 5 ~ Flash CS4 のバージョン ならびに ActionScript1.0~3.0 の全てのバージョンで使えますから, それだけではお持ちのFlashのバージョンもご使用のActionScriptも特定できません。 バージョンがわからないと, 無回答になるか,トンチンカンな回答しか返ってこない場合がありますよ。 以下では, Flash 5 は古すぎるので勝手に無視させてもらって, Flash MX 以上(Flash 6 以上),ActionScript1.0 でできる方法を書きます。 フレーム1~3 ではなく, ステージ上に 画像1~3,または ムービークリップ1~3 を横並びで配置し, その3つの画像またはムービークリップをまとめて1つのムービークリップに変換します。 変換するときの基準点は「左上」に設定しておくと計算が楽になる気がします。 そして, その3つの画像またはムービークリップ入りのムービークリップにインスタンス名を付けます。 ここでは 「my_mc」 というインスタンス名を付けることにしておきます。 その「my_mc」 内のタイムラインの編集に入って, 各画像もしくはムービークリップの上に, それぞれ ボタン1~3 を配置します。 そして,それらの9つボタンに, 「btn_1_1」,「btn_1_2」,「btn_1_3」,「btn_2_1」,「btn_2_2」,「btn_2_3」,「btn_3_1」,「btn_3_2」,「btn_3_3」 というインスタンス名を付けます (↓図を参照のこと↓)。 メインのタイムライン(_root)の編集に戻って, 「my_mc」 を配置したレイヤーとは違う別のレイヤーを作成し, そのレイヤーのフレームに次のように書けば良いと思います。 ------------------------------------------ // 座標を指定する変数を用意(数値は変える) var zahyou1 = -130; var zahyou2 = -260; var zahyou3 = 0; // 初期の目標座表を決める var zahyou = zahyou1; // my_mc の初期座標をその座標に移動 my_mc._x = zahyou; // 1フレーム進む時間毎に随時実行する関数を定義 my_mc.onEnterFrame = function() { // my_mc の座標を目標座標に1/4ずつ近づける this._x += (zahyou-this._x)/4; }; // btn_1_1 クリック時の動作を定義 my_mc.btn_1_1.onRelease = function() { // 目標座標 zahyou に zahyou1 の値を代入 zahyou = zahyou1; }; // btn_1_2 クリック時の動作を定義 my_mc.btn_1_2.onRelease = function() { // 目標座標 zahyou に zahyou2 の値を代入 zahyou = zahyou2; }; // btn_2_2 クリック時の動作を定義 my_mc.btn_2_2.onRelease = function() { // 目標座標 zahyou に zahyou2 の値を代入 zahyou = zahyou2; }; // btn_2_3 クリック時の動作を定義 my_mc.btn_2_3.onRelease = function() { // 目標座標 zahyou に zahyou3 の値を代入 zahyou = zahyou3; }; // btn_3_1 クリック時の動作を定義 my_mc.btn_3_1.onRelease = function() { // 目標座標 zahyou に zahyou1 の値を代入 zahyou = zahyou1; }; // btn_3_3 クリック時の動作を定義 my_mc.btn_3_3.onRelease = function() { // 目標座標 zahyou に zahyou3 の値を代入 zahyou = zahyou3; }; ------------------------------------------ 要はフレーム移動(それも単フレーム移動)で 表示させる物を横にずらすという妙なことをするのではなく, ムービークリップを横向きに動かせば良いだけではないのでしょうかということです。 「ものを横にずらしたければものを置く場所を変える」 Flash に限らず,日常生活でもそれが普通だと思います。 === もしくは上に書いた方法ではなくて, 3つの画像またはムービークリップ入りのムービークリップを, モーショントゥイーンで横向に動かしても良いと思います。 どちらにしても動かすのはムービークリップです。 「フレームを横向きに動かす」 などという考え方自体が意味不明ですね。 フレーム とは 時間 (時間軸) ですよ。 「午後3時を右に動かす」 とか 「明日を左にずらす」 とか そういう妙なことは考えたことがありませんし, また,それがどういうことなのか見当もつきません。 (SF小説や映画にすら出てこない世界のような気がします。面白そうなので,もしあったら是非見てみたいです。) ※Flash CS3 および CS4 をお持ちで   上のスクリプトを使う場合は,   パブリッシュ設定で ActionScript のバージョンを   ActionScript1.0 または 2.0 にする必要があります。   また Flash Player の対応バージョンは   Flash Player6 以上にする必要があります。   (Flash Lite 1.0 や 1.1 では動作しません。) ※スクリプトは Flash MX 以上で使用可能ですが,   下の画像は Flash CS4 のものです。   見かけが違う可能性が大きいですが,   その点はあまり気にしなくて良いと思います。  

noname#80986
質問者

お礼

詳しく説明して貰って有り難いです。 フレームが時間軸という概念がありませんでした。 説明を見て、試してみます。 ありがとうございました。 ちなみにgotoAndPlayの間違いでした。

その他の回答 (1)

  • tkmkok
  • ベストアンサー率66% (2/3)
回答No.2

つまりx軸にスライド移動させたい訳ですよね。 Tweenクラスなど便利です。 import mx.transitions.Tween; import mx.transitions.easing.*; var myTween:Tween = new Tween(myClip, "_x", Strong.easeOut, 0, 100, 1, true); これで"myClip"というMCがx座標の0から100まで1秒掛けてアニメーションします。

noname#80986
質問者

お礼

詳しく説明して下さってありがたいです!

関連するQ&A

  • FLASHでボタンごとに違うフレームに移動する場合

    こんにちわ。 FLASHにて4つのそれぞれのボタンを作成し、そのボタンをクリックするとそれぞれ違うフレームに移動するにはどうすればいいのでしょうか? 例 Aボタン→フレーム10 Bボタン→フレーム20 Cボタン→フレーム30 Dボタン→フレーム40

    • ベストアンサー
    • Flash
  • Flash、ボタンが動かない!?

    Flashでコンテンツ制作中です。 ボタンが思うとおりに動きません。 まず、シーン1上に、レイヤー10枚400フレームほどでアニメーションを作っています。 まずは、あるボタンをクリックすると、他のフレームに移動するように作っています(移動はすべてフレームラベルをつけて移動しています)。 移動先はアニメーションなのでシンボルでアニメーションクリップ化しています。 そのアニメーションクリップはいくつかのボタンの集合体です。ボタンをクリックするとまた別のフレームに飛ばしたいのですが、うまく出来ません。 ボタン自体が動いていないわけではありませんでした。 on (release) {getURL("http://www.~~/");}にするとちゃんとページを表示します。 on (release) {gotoAndPlay("main");}とすると移動しません。 on (release) {gotoAndPlay("シーン 1", "main");} でもダメでした。 ラベルのスペル間違えではないとした場合、他に何かダメな理由が考えられることはありますか? よろしくお願いします。

  • フラッシュのボタンとhtmlのフレーム

    ホームページをフレームで左と右、二つにわけました。 LeftとRightでこんなかんじです・・↓。 frameset framespacing=0 frameborder=0 border=0 cols="100,1*"> <frame name="Left" src="○○.htm" noresize scrolling="auto"> <frame name="Right" src="△△.htm" scrolling="auto"> Leftのhtmにフラッシュを貼り付けました。 貼り付けたフラッシュの中にボタンがあるのですが、そのボタンを押すとRightのほうに、任意のURLを表示させたいのです。 ボタンアクションの、URLの欄(?のとこ)をどうかけばいいかわかりません。お願いします。 on(release){ this,getURL("?"); }

    • ベストアンサー
    • Flash
  • フレームのリンクに関して

     左のフレームにボタンを作ってそのボタンをクリックすると 右のフレームにリンク先が表示されるようにしたいのですが どうしてもできません。タグ辞典で勉強しながらやっているのですが よくわかりません。もうボタンはできています。そのボタンをクリック すると左のフレームにリンクさきが表示されてしまいます。 よろしくおねがいします。

    • ベストアンサー
    • HTML
  • Flash フレームを移動しても音が残ってしまう

    Flash フレームを移動しても音が残ってしまう 初心者です。フレーム間の移動について質問させて下さい。 1フレーム目にメニューボタンを配置し、ボタン1クリック(gotoAndStop(5))で、動画再生のSWFを配置した5フレーム目へ飛ばしています。 1フレームのボタン2クリック(gotoAndStop(4))で、画像を配置した4フレーム目へ飛ぶようにしています。 ボタン1で5フレームで動画を再生、その最中にボタン2をクリックするとステージ上は4フレーム目になりますが、再生中の動画の音声が消えません。 どういう処理が必要なのか具体的に教えていただけませんでしょうか。 AS3.0になります。

  • Flashでボタンが全て押されたら次のフレームに飛びたいです。

    flashで、隠れている動物を探すゲームを作っています。 動物が隠れている場所はボタンになっていて、クリックすると動物が 姿を現すようになっているのですが、 全てのボタンが押されたら次のフレームに飛んでクリア画面を出したいのです。 if(ボタンを全部押したら) { 次のフレームへ移動 } 上のようなスクリプトも書いてみましたが駄目でした。(私の書き方が間違えているだけなのかもしれませんが・・・) ボタンは全部で10個あり、それぞれbtn_1、btn_2..というような名前を付けています。 回答よろしくおねがいします。

    • ベストアンサー
    • Flash
  • HTMリンクから、別フレームFLASHの各コンテンツを動かす方法

    お世話になります。 質問を見ていただきありがとうございます。 ・左フレームにFLASHのメニュー (リンクを押すとそれぞれにムービーあり) ・右フレームはHTM(CSS) というサイトを作成したとき、右HTMフレームにもテキストでFLASHと同じリンクを作成しました。 (ページ読み上げソフトを使われる方がリンク先に飛べるように) このとき、右のHTMフレームのリンクをクリックした際、同時に左のFLASHを(FLASHのフレーム番号やコンテンツに飛ばすなどして)動かすことは可能でしょうか? ※タグなどがあればいいんですけど聞いたことがありません。 ※FLASHリンクを押す→FLASHの押したリンクメニュー(現在地)に赤い点が付く…というのを、HTM側とそろうように…同じように制御できるかどうかです。 調べたところ、似たような質問はありました。もちろん「できない」と一刀両断されていました。 …が、ダメモトで質問させていただきます。 ※できない場合、打開策は…。 右のリンクを押したあと、右と左を一緒に再読込してそのメニュー用のFLASHをまた読み込ませる…ということしかないでしょうか? これだとかなり辛いですよね…。 それ以外いも、なにか良い方法がありましたらよろしくおねがいします。 説明でわからない点がありましたら、補足等をできるだけ素早く付けたいと思います。  

    • ベストアンサー
    • Flash
  • Flashボタンのターゲット設定がうまく出来ません。

    こんにちわ、初めて質問させていただきます。 フレームで左右2分割して左にFlash MXで作成したボタンを設置し、右にボタンをクリックした際にコンテンツを表示させたいのですがうまく出来ません。 ・フレームHTMLソース <FRAMESET cols="27%,73%" frameborder="NO" border="0"> <FRAME src="menu.html" name="menu_area"> <FRAME src="top.html" name="disp_area"> </FRAMESET> フラッシュのアクションには on (press) { getURL("pro.html", "disp_area"); } を入れましたがどうしてもボタンを押しても新しいウィンドウで出てきてしまいます。 分かり難く申し訳ありませんが、ご教授願います。

    • ベストアンサー
    • Flash
  • 上と左にフレームわけされているメニューボタン画像の切り替えについて

    フレームをまたいだメニューボタンの動作で困っています。 現在作成しているページは、3フレームにわかれていて、 上と左フレームにメニューがあり、右側にメインフレームという構成です。 上と左にあるメニューボタンをクリックすると、 メインフレームに該当htmlが表示されるタイプです。 それぞれのメニューボタンはGIFで作っていて、 OFFの状態とONの状態の2種類を用意しています。 メニューボタンをクリックすると、 メインフレームに該当htmlが表示され、 クリックしたメニューボタンのGIFがONの状態になり、 その他のメニューボタンはOFFの状態になる、 というものが作りたいのですが、 左フレームは左フレームだけならうまくいくのですが、 上フレームのメニューと左フレームのメニューの連携がうまくいきません。 (例えば、左フレームのあるメニューボタンをクリックしたら、 上フレームのメニューもOFFの状態に戻したいんです。) もし何か解決策をご存知の方がいらっしゃいまいしたら、 どうかご教授ください。 よろしくお願いいたします。

  • FLASH ボタン音

    現在、FLASHでボタンをクリックしたときに音がなり、 リンク先に移動するといった簡単なものを作成し、 そのFLASHデーターをHTMLに読み込んでいます。 しかし、ボタンの音の長さより、 リンク先に切り替わるタイミングの方が早く ボタン音が途中で途切しまい、 リンク先のページが表示されてしまいます。 ボタン音を短いものにすればよいのですが、 現在使っているものを使用しなければいけません。 この問題として、クリックしてから ある一定時間たてば、リンク先に移動するといった スクリプトを組めばいいと思うのですが、 FLASHをはじめたばかりで、 やり方が分かりません。 どなたか教えていただけないでしょうか? よろしくお願いします。

専門家に質問してみよう