• ベストアンサー

Flashのサンプルを探しています。

こんにちは。いつもお世話になっています。 現在、Flashのサンプルを探しています。 画面に画像がバラバラに散らばっていて、ボタンを押すとそれぞれのボタンに関連した画像だけが集まってくる。 例えば、「花」というようなボタンを押すと、花の画像だけが集まる感じです。 このようなFlashを制作したいのですが、それに似たサンプルはないでしょうか? 教えて頂けると助かります。よろしくお願い致します。

noname#176883
noname#176883
  • Flash
  • 回答数1
  • ありがとう数1

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

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

お持ちのFlashのバージョンを書かれていらっしゃいませんよ。。。 仮にそのようなサンプルがあったとしても, バージョンによって説明が全く違っていたり, サンプルファイル(.fla)が開けない可能性もあります。 また > それぞれのボタンに関連した画像だけが集まってくる。 これは 「どこにどのように集まってくる」 のでしょうか?  画面の上の方にランダムに集まる とか,  画面の中央にキッチリ整列するように集まる とか,  ボタンの周囲に円を作るように集まる とか,とか,とか… この 「集まる」 1つを考えただけでも無限通りの可能性があります。 また, 「それぞれのボタンに関連した画像だけが集まってくる。」 までは良いとして, (良くありませんが,仮にそこまではわかったとして,) 次に,違うボタンが押されたときはどうなるのでしょうか? 違うものがどんどん集まって来て良いのでしょうか? それとも,元の位置に帰るべきなのでしょうか? とにかく無数の場合があります。 ですから,ピッタリの(それに似た)サンプルなどない(まず見つからない)と思います。 上で書いた理由からサンプルを探す気力などは湧かないので, なるべく, 「どのように集まる場合でも対応できるのではないかと思えるもの」 を考えてみました。 ただし,バージョンは勝手に決めています。 Flash MX 2004 以上(MX2004,8,CS3,CS4)をお持ちで, ActionScript2.0 を使う場合で, Flash Player 7 用以上の SWF を作成する場合の方法です。 ========= 1つのレイヤーに, 花なら花に関するものだけを用意して, それぞれをムービークリップに変換します。 ムービークリップに変換するときの「基準点」はどこでも良いと言えばどこでも良いのですが, 一応 「中央」 に統一しておくのが良いのではないかと思います。 そして 「こう集まってほしい」 という状態に配置します。 そしてそれらのムービークリップに重複がないように違うインスタンス名を付けます。 花に関するものがいくつあるのか知りませんが, 仮に 5 つあったとすれば,例えば, 「hana0」,「hana1」,「hana2」,「hana3」,「hana4」 というように,半角英字の任意の文字列 + 0 から始まる連番付きのインスタンス名を付けます。 どのムービークリップに,どのインスタンス名を付けてもかまいません。 「重複しないように」 「半角英字+連番」 という規則があればそれで良いです。 --- また別の1つのレイヤーに, 例えば星なら星に関するものだけを用意して, それぞれを花と同様にムービークリップに変換します。 そしてこれも 「こう集まってほしい」 という状態に配置します。 そしてそれらのムービークリップにも重複がないように違うインスタンス名を付けます。 仮に星に関するものが 5 つあったとすれば,例えば, 「hosi0」,「hosi1」,「hosi2」,「hosi3」,「hosi4」 というように,半角英字の任意の文字列 + 0 から始まる連番付きのインスタンス名を付けます。 --- 他があっても同様です。 別の1つのレイヤーに同じ種類のムービークリップを配置してインスタンス名を付けます。 この説明では,鳥に関する 「tori0」,「tori1」,「tori2」,「tori3」,「tori4」 があるものとします。 【参考図↓】 --- さらにボタン用レイヤーを作成して, 「花」を集めるボタン,「星」を集めるボタン,「鳥」を集めるボタン,… を作成配置します。 そして 「花」のボタンには,「hana_btn」 「星」のボタンには,「hana_btn」 「鳥」のボタンには,「hana_btn」 というようなインスタンス名を付けます。 --- さらにActionScript用レイヤーを作成して, そのレイヤーのフレームに次のようなスクリプトを書けば完成です。 ///////////////////////////////////////////////////// // hana0~hana? の最終番号 ? を設定 var hana_last:Number = 4; // hosi0~hosi? の最終番号 ? を設定 var hosi_last:Number = 4; // tori0~tori? の最終番号 ? を設定 var tori_last:Number = 4; // 拡散させる範囲の左座標を設定 var areaL:Number = 60; // 拡散させる範囲の右座標を設定 var areaR:Number = Stage.width; // 拡散させる範囲の上座標を設定 var areaT:Number = 0; // 拡散させる範囲の下座標を設定 var areaB:Number = Stage.height; // 移動させるスピードを設定(0~1の範囲で) var speed:Number = 0.2; // --- 以上が設定値 --- // hana○ を動かすキーとなる番号 □ の初期化 var hana_num:Number = 1; // hosi○ を動かすキーとなる番号 □ の初期化 var hosi_num:Number = 1; // tori○ を動かすキーとなる番号 □ の初期化 var tori_num:Number = 1; // 花に関するループ for (var i:Number = 0; i<=hana_last; i++) { // hana○内の変数x0に今現在のx座標を記録 this["hana"+i].x0 = this["hana"+i]._x; // hana○内の変数y0に今現在のy座標を記録 this["hana"+i].y0 = this["hana"+i]._y; // // hana○内の変数x1に拡散時のx座標を代入 this["hana"+i].x1 = areaL+Math.random()*(areaR-areaL); // hana○内の変数y1に拡散時のy座標を代入 this["hana"+i].y1 = areaT+Math.random()*(areaB-areaT); // // hana○を拡散時の座標に配置 this["hana"+i]._x = this["hana"+i].x1; this["hana"+i]._y = this["hana"+i].y1; // // hana○に onEnterFrame イベントハンドラメソッドを定義 this["hana"+i].onEnterFrame = function():Void { // hana○のx座標をhana○内の変数 x□ に近付ける this._x += (this["x"+hana_num]-this._x)*speed; // hana○のy座標をhana○内の変数 y□ に近付ける this._y += (this["y"+hana_num]-this._y)*speed; }; } // hana_btn クリック時の動作を定義 hana_btn.onRelease = function():Void { // 花に関するループ for (i=0; i<=hana_last; i++) { // hana○ を最高深度に移動 _root["hana"+i].swapDepths(_root.getNextHighestDepth()); } // // hana○ を動かすキーとなる番号 □ を 0 にする hana_num = 0; // hosi○ を動かすキーとなる番号 □ を 1 にする hosi_num = 1; // tori○ を動かすキーとなる番号 □ を 1 にする tori_num = 1; }; // 星に関するループ for (var i:Number = 0; i<=hosi_last; i++) { // hosi○内の変数x0に今現在のx座標を記録 this["hosi"+i].x0 = this["hosi"+i]._x; // hosi○内の変数y0に今現在のy座標を記録 this["hosi"+i].y0 = this["hosi"+i]._y; // // hosi○内の変数x1に拡散時のx座標を代入 this["hosi"+i].x1 = areaL+Math.random()*(areaR-areaL); // hosi○内の変数y1に拡散時のy座標を代入 this["hosi"+i].y1 = areaT+Math.random()*(areaB-areaT); // // hosi○を拡散時の座標に配置 this["hosi"+i]._x = this["hosi"+i].x1; this["hosi"+i]._y = this["hosi"+i].y1; // // hosi○に onEnterFrame イベントハンドラメソッドを定義 this["hosi"+i].onEnterFrame = function():Void { // hosi○のx座標をhosi○内の変数 x□ に近付ける this._x += (this["x"+hosi_num]-this._x)*speed; // hosi○のy座標をhosi○内の変数 y□ に近付ける this._y += (this["y"+hosi_num]-this._y)*speed; }; } // hosi_btn クリック時の動作を定義 hosi_btn.onRelease = function():Void { // 星に関するループ for (i=0; i<=hosi_last; i++) { // hosi○ を最高深度に移動 _root["hosi"+i].swapDepths(_root.getNextHighestDepth()); } // hosi○ を動かすキーとなる番号 □ を 0 にする hosi_num = 0; // hana○ を動かすキーとなる番号 □ を 1 にする hana_num = 1; // tori○ を動かすキーとなる番号 □ を 1 にする tori_num = 1; }; // 鳥に関するループ for (var i:Number = 0; i<=tori_last; i++) { // tori○内の変数x0に今現在のx座標を記録 this["tori"+i].x0 = this["tori"+i]._x; // tori○内の変数y0に今現在のy座標を記録 this["tori"+i].y0 = this["tori"+i]._y; // // tori○内の変数x1に拡散時のx座標を代入 this["tori"+i].x1 = areaL+Math.random()*(areaR-areaL); // tori○内の変数y1に拡散時のy座標を代入 this["tori"+i].y1 = areaT+Math.random()*(areaB-areaT); // // tori○を拡散時の座標に配置 this["tori"+i]._x = this["tori"+i].x1; this["tori"+i]._y = this["tori"+i].y1; // // tori○に onEnterFrame イベントハンドラメソッドを定義 this["tori"+i].onEnterFrame = function():Void { // tori○のx座標をtori○内の変数 x□ に近付ける this._x += (this["x"+tori_num]-this._x)*speed; // tori○のy座標をtori○内の変数 y□ に近付ける this._y += (this["y"+tori_num]-this._y)*speed; }; } // tori_btn クリック時の動作を定義 tori_btn.onRelease = function():Void { // 鳥に関するループ for (i=0; i<=tori_last; i++) { // tori○ を最高深度に移動 _root["tori"+i].swapDepths(_root.getNextHighestDepth()); } // tori○ を動かすキーとなる番号 □ を 0 にする tori_num = 0; // hana○ を動かすキーとなる番号 □ を 1 にする hana_num = 1; // hosi○ を動かすキーとなる番号 □ を 1 にする hosi_num = 1; }; ///////////////////////////////////////////////////// これを適当にカスタマイズしてみてください。 全体的には,  各ムービークリップの中に   x0 ←最初に配置したムービークリップのx座標   y0 ←最初に配置したムービークリップのy座標   x1 ←ランダムに散らばったときのx座標   y1 ←ランダムに散らばったときのy座標  という 4つの変数 を用意しておいて,  ボタンによって各ムービークリップが移動する目標座標を  (x0,y0) にするか, (x1,y1) にするかを切り替える。 というだけの内容です。 もしわからないスクリプトがあれば検索などしてもらうしかありませんが, 検索しようにも検索しにくいのが,  this["hana"+i].x0 のように,頻繁に出てくる [ ] です。 [ ] を 「配列アクセス演算子」 と言います。 上のスクリプトでは 「配列」 は一切使用していません。 上のスクリプトで使った [ ] は配列とは無関係です。 これもわからない場合は Google や ヘルプ を検索してみてください。 「配列アクセス演算子」 は ActionScript1.0 ~ 3.0 まで共通で使うことができます。 (ただし Flash Lite 1.0 や 1.1 では使えません。) スクリプトが長いですが, ユーザ定義関数 を作成して, ムービークリップの名称を引数としてその関数を実行するようなしくみなどを考えると, スクリプトの行数は半分以下にできると思います。 その他,配列 を用意してムービークリップなどのデータを管理すると, さらに短く出来る上,もっと使いやすくなると思います。 短く使いやすくしても良いのですが, それだと,理解がしにくくなる(どこをどう変えれば良いのか見当がつかなくなる)と思ったので,長いままにしてあります。 「完成品サンプル」と「理解しやすいサンプル」とは全く違います。 ご質問の場合「どう集めたいのか」などがハッキリしていませんから, 理解できない「完成品」を用意してもダメでしょう。 ========= 上の スクリプトを使うには Flash MX 2004 以降が必要です。 しかし,もし その前のバージョン Flash MX しかお持ちでない場合は, 変数や関数の型指定部分を全部取って ActionScript 1.0 に落とした上で, ○○.swapDepths(_root.getNextHighestDepth()); の getNextHighestDepth() を工夫して自作すればできます。 一般的にはバージョンが低いほど,面倒が増えます。 Flash 5 以下では全く通用しません。 ムービーの作り方などからやりなおしです。 さらにさらに 面倒が増えます。 ActionScript 3.0 を使いたい場合は, 考え方は同じで出来ますから, ActionScriptを全部作成しなおしてください。 以上を見てわかると思いますが, これだけでも長いです。各バージョン対応で一々回答できません...。

noname#176883
質問者

お礼

質問があまりにも雑でした。すいません。 なのに、こんなに詳しく回答してくれてありがとうございます。 バージョンはCS3なので、これで出来ました。 あとはちょっとずつ手を加えていけば完成しそうです。 次、何か質問する際には、今回の雑な質問をしないようにも心がけます。 なんだか、それまで教えてもらって、すみません・・・。 本当にありがとうございました。心から感謝です。

関連するQ&A

  • ボタンと連動している流れるFlash

    はじめまして、こんにちは。 FLASHの作り方について質問です。 http://www.rakuten.ne.jp/gold/galstar/ 上記のサイトのように、 常に画像が一定感覚で流れてて、 ボタンにプルオーバーすると、そのボタンに関連した画像になる、 といったflashを作りたいのですが、 (わかりにくい説明で申し訳ないです。。 上記サイトの動きそのものを作りたいです。) 参考書や各サンプルサイトを拝見しても 一向に進まず、苦しんでおります。。 どなたか教えて頂けませんでしょうか。 似た感じのflashのサンプル説明が載っている サイトの紹介でもかまいませんので、 どうぞよろしくお願い致します。

  • FLASH制作で質問があります!

    FlashQ&A(サンプル作品集)の憲ちゃん様のサイト http://hfm-kenchan.com/Lesson/contents/index.htm No.874の素材を使わせてもらい、 FLASH制作をしているのですが、 画像のようなことをしたいと思っています。 No.874の物は、サムネイルをクリックすると 該当の画像が大きく表示され、画像の外をクリックすると閉じるというものになっています。 しかし、大きく表示された画像の左右に▲ボタンをもうけ、その▲ボタンを押すと、 前の画像や次の画像にうつるというものを作りたいと思っています。 現在、自分の方でも調べているのですが、 分かる方がおりましたら教えていただけると非常に助かります… 何卒、宜しくお願い申し上げます。

    • ベストアンサー
    • Flash
  • flashサンプルデータが開けません!!!

    FLASH BBSについて勉強したくてFLASH BOOKS Version 02.Communicationという2002年にでた本を購入しました。 私はOSX 10.39 MX2004を使っているのですが、このサンプルデータは古いためか私が見たことないflashアイコン!?でクリックしても開けないんです。よく確認せずに買った私が悪いのですが、巻末を見ると対応PC環境は9.1/9.2、10.1となっております。私の環境ではこのサンプルデータは開けないのでしょうか?この書籍は大まかに説明してある箇所があり私の実力ではサンプルデータがないとキツイです。このデータを開く方法などございましたらご教授お願いします。 また、厚かましいお願いですがFLASH BBSについて詳しく説明しているオススメの書籍などございましたら教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • Flashの演出(エフェクト)のサンプルサイト

    いつもおせわになります。 Flash(写真とテキストのスライドショー程度)の動き(演出・エフェクト)の サンプルが分かるいいサイトがあれば教えてください。 例えば ワイプとは、ディゾルブとは、スライドとは、こういう動きだよ と分かるものを探しています。

  • ドラッグして四角形を切るFlashを教えてください。

    画面に名刺程度の四角形が表示されており、その四角形の上をドラッグすると、四角形に入る始点と、四角形を出る終点の座標をとって、その座標を結ぶ直線で、四角形を2つに切るFlashを制作したいと思っています。 制作方法やscriptのサンプルがある場所を教えてください。切る処理の似たようなFlashでもかまいません。 やっかいな質問だと思いますがよろしくお願いします。

    • ベストアンサー
    • Flash
  • 【actionscript】Flash MXのサンプルを元に…

    Flash MXを勉強中の初心者です。添付されているサンプル解析をしながら勉強していますが、サンプルフォルダ内の「load_images.fla」を基本に、画面切り替えの「fadeIn/fadeOut」処理を、右側から紙芝居のように新しい画面がスライドインしてくるように変更したい。 何とも初心者なのに、仕事の関係上急に必要になったもので。。 actionscriptについても、良く理解できていません(^_^; 何卒御指南いただけると助かります。 また、お勧めのFLASH参考書等ありましたら教えて下さい。 宜しくお願い致します。

  • タイトルバーのみ表示させたい(Flash)

    いつもお世話になります。 自分のHP内にFlashのメールフォームを設置したいと考えて いるのですが、表示させる画面を 1.Flashのフォームに合わせた画面の大きさに調整したい 2.タイトルバーのみ表示させたい という風にしたいのですが、どのようにしたらいいのでしょうか? 具体的にはhttp://www.suzuha.com/tbody/cgif/02_02.html にあるFlashメールフォームの「Form03」のサンプルを 表示させたような形にしたいのです。 画面の大きさもこのフォームにピッタリと合い、 さらにタイトルバーだけ表示させるという感じです。 是非とも御指南いただければと思いますm(_ _)m

    • ベストアンサー
    • HTML
  • flashで、プルダウンが隠れる

    いつもお世話になっております。 現在、オンマウスでプルダウンメニューが出るメニューボタンの下に、Flashムービーを表示させるようなページをつくっています。 (今までは、Flashではなくjpg画像だった箇所に、リニューアルしてFlashムービーを使うことになりました。) ですが、Flashムービーを挿入したところ、オンマウスするとプルダウンメニューがFlashの背景に隠れてしまいました。 Flashを一番背景にしたいのですが、どうすればいいのでしょうか? よろしくお願いします。

  • FLASHでテキストのボタンについて

    FLASHで現在自分のホームページを制作しています。 そこで、FLASHのテキストボタンを作成してプレビューして見ると テキストの隙間でボタン機能が解除してしまいます。ロールオーバー でマウスで選択すると色が変わるようにしていますので分かります。 これは、テキストのフォントが原因なんですか? それとも画像を作らなければならないのですか? そしてもう一つですが 最初に読み込む時のNOW LOADINGの画面ですが、読み込みバイト70% を超えてやっとBARが表示されます。 これは何がいけないのですか? 分かる方お願いします。

  • ◆jpg画像をflashに変換

    いつもお世話になります。 jpeg画像をflashに変換させたいと考えています。 検索すると逆のパターンはサンプルなどがあるのですが。。。 何かご存知の方は、宜しくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう