• ベストアンサー

flash作成・設定について

BlurFiltanの回答

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

◎前置き 『Flash』の "主役" は何と言っても 『ムービークリップ(MovieClip 略称:MC)』です。 『Flash』を作成する=『ムービークリップ』を作成して行く と言っても過言ではありません。 スクリプトなどはその次です。 ムービークリップを活用出来なければ まともな Flash など作成できません。 まずはムービークリップなどのオブジェクトを用意して それにスクリプトで動作命令をするのです。 そのことをしっかりと意識してください。   ======================= ◎本題 > on (press) {gotoAndStop(コマ数);} このようにされているのは メインのタイムラインのフレーム移動を利用して ボディカラーを変更しようとされているわけですよね? タイムラインを利用するのは良いのですが メインのタイムラインを利用していることが間違いです。 メインのタイムラインではなく 『ムービークリップ』内のタイムラインで ボディカラーを変更するように仕組むのです。 例えば 新規ドキュメントの作成で メインのタイムラインのフレーム1のステージ上に 「赤いボディの絵」を用意したとします。 その絵を選択して「修正」→「シンボルに変換」で 「ムービークリップ」に変換します。 そして そのムービークリップをダブルクリックするなどして ムービークリップ内のタイムラインの編集に入ります。 すると ムービークリップ内(例:シンボル1 内)にも タイムラインが存在することがわかると思います。 そのタイムラインを 例えば3フレームにして その各キーフレームに 「赤いボディの絵」や「緑のボディの絵」や「青いボディの絵」 を配置(または描画)して行くわけです。 ※【参考図】↓ 配置(描画)が済みましたら 何も書いてない部分などをダブルクリックして メインのタイムラインの編集に戻ります。 メインのタイムラインは 1フレームしかないはずです。 そのメインのタイムラインにあるムービークリップを選択して プロパティパネルより 例えば「body_mc」というインスタンス名を付けます。 それとは別にボタンを3つ用意して それぞれに on (press) { body_mc.gotoAndStop(1); } とか on (press) { body_mc.gotoAndStop(2); } とか on (press) { body_mc.gotoAndStop(3); } のように書いて行けば その「body_mc」内のタイムラインを操作するものができると思います。 ここまですれば 後は何をすべきかわかると思いますが 「ホイール」に関しても ムービークリップ内に各ホイールの絵を用意して行くわけです。 そして例えば「wheel_mc」などというようなインスタンス名を付けて それをコントロールするボタンに on (press) { wheel_mc.gotoAndStop(コマ数); } のようなことを書けば良いということになります。 さらにまた 「body_mc」と「wheel_mc」をさらにまとめてムービークリップに変換して 例えば「car_mc」みたいなものを作ることも可能です。 そうすれば 「car_mc」を移動させることによって 車全体の移動なども簡単になります。 Flash とは そうやって ムービークリップ を ネスト構造(入れ子構造) にして 作り込んで行くのが基本です。 Flash 作成ソフトの名称やバージョンを書かれていないため サンプルファイルが開けるかどうかはわかりませんが 一応は,その MovieClip.gotoAndStop(○○) を利用して 色や形を変えるサンプルです↓。 「色を色々(Flash 8)」 http://suzupara.iinaa.net/mixi/color/ ↓↓↓ 「MovieClip.gotoAndStop() で色を変える」の 「color1.fla」を参照のこと ※ 作成ソフトやバージョンによってファイルが開けないことは多々あります。 「色や形を変える(Flash MX 2004)」 http://suzupara.iinaa.net/mixi/color2/ ※ 作成ソフトやバージョンによってファイルが開けないことは多々あります。 ご質問に書かれているスクリプトは 「ActionScript 1.0」 で 下記URLのサンプルは 「ActionScript 3.0」 ですから そのままは使えませんが考え方や仕組みは同じです↓。 「アイテムを選択する(ActionScript 3.0 / Flash CS3)」 http://suzupara.iinaa.net/mixi/dobin/ ※ 作成ソフトやバージョンによってファイルが開けないことは多々あります。   その他 ムービークリップを使う以上は 「ターゲットパス」にも注意して スクリプトを考えて行ってください。 「ターゲットパス」 http://homepage3.nifty.com/ginga-b/MX/targetpath.html   ======================= ◎補足 本題とはあまり関係がありませんが いわゆる普通の「クリック」を表すスクリプト(イベントハンドラ)は on (press) ではなくて on (release) ですよ。 「onイベントハンドラ」 http://www.1art.jp/flash/le/lesson16/lesson16.htm  

関連するQ&A

  • flashからflash lite

    質問です。 現在、flash lite1.0の作成をしているのですが、 flash8で作成したゲームをliteバージョンにしたいと考えております。 そこで on (press) { this.play(); _root.addScore(); } この上記のスクリプトをlite仕様にしたいのですが、 どの様に変更したらいいのか、お分かりの方がいましたら 単刀直入に、スクリプトを記述して ご返答の程宜しくお願いいたします。

  • Flash Lite 1.1での簡易パスワード認証の実現

    簡易パスワード認証に挑戦しています。 ところがある問題が… まずテキストボックスを作り、変数をpassと設定しました。 「認証」ボタンに以下のスクリプトを記述しました。 on(release, keyPress "1") { keyword = "pass"; if (pass == PASSWORD) { this.gotoAndStop("OK"); }else{ this.gotoAndStop("NG"); } } で、ここまでは良かったのですが、なんとFlash Lite1.1では this.gotoAndStopが対応していないとのメッセージが… 実際携帯電話でプレビューしてみても、どんなパスワードでもOKに なってしまいました。なるべく簡単なスクリプトで済ませたいのですが、 this.gotoAndStopが使えないFlash Lite1.1でこれを実現するには どこをどう修正すれば良いのでしょうか? Action Scriptに詳しいお方、お助け願います。

    • ベストアンサー
    • Flash
  • FLASHで作ったムービーをクリックしてから再生するように設定したい

    ごらん頂有難う御座います。 DREAMWEAVERを使ってホームページを作っております、 その中にFLASHで作ったムービーを挿入し、そのムービーをクリックしてから再生をしたいのですがなかなかうまくいきません。 ムービーの最初のフレームをボタン・シンボルにして、そのボタンにアクションスクリプトを入れてもエラーが出てしまいます。 ちなみに on (press) { this.play(); } と記述しました。 半日この件で潰れてしまいました、宜しくお願い致します。

  • FLASHでのロールオーバーについて

    こんにちは。 FLASHで、メニューボタンにマウスを乗せると別の領域に画像が表示される、というものを作りたいのですが、どうもうまくできません。 今やっている方法はこんな感じです。まずムービークリップで、1フレーム目を空白に、2フレーム目に表示する画像としたものを作り、インスタンス名をinfomationとして配置します。このシンボルの1フレーム目に、勝手に再生されないようstop(); を書いておきます。そしてメニューボタン(これも、アニメーションボタンにしたいのでムービークリップで作っています)に、以下のスクリプトを書きました。 on (rollOver) { with (infomation) { gotoAndStop(2); } } これで再生しますと、マウスをボタンに乗せても画像が表示されません。(ポインタの形状は変わりますので、ボタンとしては認識してくれているようなのですが・・・) この方法で、間違っているところや、あるいは もっとよい方法がありましたら、教えていただけませんでしょうか。 本やネットで調べたのですが、あまりにも初歩的な質問のためか?解決につながるようなものが見つかりませんでした。 どうぞよろしくお願いいたします。

  • ASファイルについて

    関数などをまとめてasファイルにして読み込みたいとかんがえているのですが、可能なのでしょうか? たとえば レイヤー2にあるボタンオブジェクト"btn"をクリックすると レイヤー1で#include "function.as"としたなかの function hoge() { gotoAndStop(5); } とうい関数を実行したいっていうふうに考えいます。 btn.on(press) = hoge(); やってはみたのですが、Flash初心者でどうもうまくいきません。 どうかご教授ください。 よろしくお願いします。

  • 階層をまたぐ命令について

    Flash CS4 as2.0です。 メインタイムラインの下にムービークリップmc1、flash1、flash2をつくり、mc1の下にさらに ムービークリップmc2を作りまして、メインタイムラインには、var hensu=0;という変数を設定しています。この場合のmc2に書いたスクリプトの動作についてですが、 on(release){ _root.flash1.gotoAndStop("aa"); ・・・(1) _root.flash2.gotoAndStop("bb"); ・・・(2) _root.hensu=1; ・・・(3)        } 上記の(1)と(2)は実行されますが、(3)については実行されません。 記述を(3)、(1)、(2)と変えても同じです。 孫階層から2代上の親階層(メインタイムライン)へのアクセスはできないのでしょうか。

  • Flashマウスオーバー

    Flashで、ループが一回の小さなムービーを流し、 その上にマウスを合わせると(クリックではなくオーバーのみ)、別の絵が表示されてストップし、またマウスを外すと元のムービーがはじめから流れるものを造りたいのですが、ボタンシンボルで造ると、マウスを外してもムービーが最初からは始まりません。 ボタンシンボルを使わずにon(release)のような記述で、クリックではなくマウスオーバー時に反応させるにはどうしたらよいのでしょうか? 良いアドバイスがあれば教えてください。 宜しくお願いします。

  • Flashでのフレーム操作

    こんにちは。Flashの事で質問なのですが、 フレームを上・中・下の3つに分けたhtmlを作り最初に上中下全てのフレームにswfを再生させ、その後、中フレームのswfの中のボタンをクリックすると中のフレームに別のhtmlを表示させたいのですがなかなかうまくいきません。 今試みてみたのは、まずswf中のボタンに  on (press) { this.getURL("JavaScript:change('http:// ~')");        } を記述し、htmlのhead部分に <SCRIPT LANGUAGE = "JavaScript"> <!-- function change(myurl){ parent.mainFrame.location = myurl; } //--> </SCRIPT> を記述してみたのですがだめでした。 分かる方、ご教授頂ければ幸いです。

  • Flashのメールフォームにcgiを設置 別ウインドウで・・・

    いつもお世話になります。 FlashMX使用のものです。 FlashできたメールフォームにKENT.WEBの「postmail」を設置しています。 設置する事はなんとかできたのですが、送信ボタンを押すとメール内容確認画面~送信完了のページが別ウインドウで開けるようにしたいのです。 現在のactionは on (press) { getURL("./postmail.cgi","_top","POST"); } となっています。 javascriptを使い別ウインドウを出すために上記を on (press) { getURL("javascript:window.open('./postmail.cgi','_top','POST');void(0)"); } に変更したのですが、ボタンを押すと「不明な処理」となってしまいます。 flashのみでできたhpなので「前画面に戻る」を押すとflashが最初まで戻ってしまい非常に面倒なので、どなたか解かる方いましたら宜しくお願いします。

    • ベストアンサー
    • Flash
  • FLASHにサウンドを取り込みたい

    flash cs5を使用していますが Actionscriptは2.0で作業をしています。 やりたいことは ライブラリにあるサウンドファイルにリンケージ設定をして 効果音を利用したいのですが 以下のスクリプトでうまく音が出ません。なぜなのでしょうか。 教えてください。 ※リンケージは bgm と設定。 ファイルの拡張子はmp3とかwavでやってみました。 (1)フレーム1に _root.s1_sound=new Sound(); _root.s1_sound.attachSound("bgm"); _root.s1_sound.stop(); (2)ステージのボタンに on(press){ _root.s1.sound.start(); } と記述して実行しても音が出ません。 どうしてなのかわかりません。 よろしくお願いいたします。