- ベストアンサー
Flashで複数フォルダーの条件設定からファイルを読み込む方法
- Flashで作成した絞込み条件設定画面から選択された条件を使用してファイルを読み込む方法について解説します。フォルダー内に格納された複数のファイルを読み込み、サムネイル表示画面に表示する方法をご紹介します。
- 条件設定画面では、複数のフォルダーの中から読み込むファイルを選択できます。フォルダーはそれぞれ異なる条件に対応しているため、使い回しのために1つのサムネイル表示画面を作成する方法を考えています。
- サムネイル表示画面では、選択されたフォルダーに含まれる全てのファイルを読み込んでサムネイル表示します。ファイルは命名規則に従っており、それぞれの条件に対応しています。良い方法をお探しの場合、ぜひこの方法を試してみてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
失礼しました。一箇所抜けがありました。 1フレームで var i = 0; と変数を定義し、適当なボタンを配置してボタンアクションに以下のように記述してください。 on(press){ a.duplicateMovieClip("b"+i, i); this["b"+i].loadMovie("./img01.jpg") this["b"+i]._x += 100*Math.random(); i++; } 動作確認したので大丈夫だと思います。
その他の回答 (3)
- mach999
- ベストアンサー率75% (36/48)
そういうイメージでいいと思います。 ちなみに aa.duplicateMovieClip("a1") ; a1._name = "a1" ; で、この手の処理は、 aa.duplicateMovieClip("a"+i) ; this["a"+i]._name = "a"+i とかすると、ループ処理ができて効率的です。 【いま動作確認できる場所にいないので、ミスがあったら申し訳ありません。】
補足
上記のScriptを記述して複数のJPEGを読み込みましたが、結局最後に呼んだJPEGだけが表現されていて、他の座標にセットした筈の画像は表示されません。 どうも、常に基となるムービークリップが置き換わっているようです。私の指定の仕方が悪いのでしょうか?。
- mach999
- ベストアンサー率75% (36/48)
ポイントに絞って回答したいと思います。 >読み込んだビットマップをシンボルに変換出来るか jpgファイルの読み込みはMovieClip.loadMovieメソッドでできます。 MovieClip.loadMovieメソッドを実行するとMovieClipはjpg画像に入れ替えられます。この読み込んだjpg画像はムービークリップになっていて、ムービークリップで使えるメソッドは全て使用可能です。 つまり今回の場合なら、ムービークリップをattachMovieやduplicateMovieClipで実行中に生成し、その生成したムービークリップのloadMovieメソッドを呼び出して画像を読み込めば良いわけです。 >各々のシンボルを押下された時に別のScriptを動かしたい 各々のムービークリップに対して別のスクリプトを動かすよりも、ムービークリップのインスタンス名を引数としてグローバル関数を呼び出したほうが楽だと思います(インスタンス名は_nameプロパティで参照可能)。 >座標を変えながら次々とImageをステージ上に配置(読み込む)する 読み込んだjpg画像はムービークリップになっているので、_xや_yなどを適切に設定してやればムービークリップを好きな位置に配置できます。 ちなみに質問の中でシンボルとおっしゃってますが、ムービークリップインスタンスのことを意味していると解釈して回答しています。
補足
MovieClip.loadMovieで読込むということは、予めターゲットとなるムービークリップを作成しておくと言う事ですね?。 そうなると、予想されるファイルの分だけムービークリップを事前に用意しなければならないと言う事はありませんか?。 attachMovieやduplicateMovieClipを利用したことはありませんが、これは空のムービークリップを一つ用意しておき、その複製を作りながら配置すると言う事でしょうか?。 "aa"と言うターゲット用のムービークリップを用意して、 aa.duplicateMovieClip("a1") ; a1._name = "a1" ; a1.loadMovie("sample.jpg") ; a1._x = 100 ; a1._y = 100 ; aa.duplicateMovieClip("a2") ; a2._name = "a2" ; : : こんな感じになるのでしょうか?。
- mach999
- ベストアンサー率75% (36/48)
4つのフォルダそれぞれにimg01.jpg~img99.jpgのファイルがあると考えてよいのですか? それとも、1つ目のフォルダにはimg01.jpg~img25.jpgで、2つ目のフォルダにはimg26.jpg~img50.jpgみたいな?
補足
各フォルダーにはimg01~imgxxと言うふうに格納します。 従って、読み込むときはループ処理でシーケンスアップしながらSuffixにして読み込む予定です。 (ファイルがあるまで読み込むと言う処理は、テキスト読込み処理で実現出来ています。) 分からないのは、座標を変えながら次々とImageをステージ上に配置(読み込む)する事や、読み込んだビットマップをシンボルに変換出来るかと言う事です。 それをマスクレイヤーの配下に配置し、スクロールバーを付けて、各々のシンボルを押下された時に別のScriptを動かしたいのです。 どうぞ宜しくお願い致します。
お礼
一応出来ました。 ルートのフレームアクションに記述していたのですが、マスクレイヤー配下のレイヤーに配置されているムービークリップのフレームアクションに変えてみたら成功しました。 但し、ルートの方でScrollBarの設定をしているのですが、 右端にスライドしたときの移動幅の設定がうまくいっていません。 JPEGの横幅が90Pixcel、マスク設定しているのが360Pixcelなので、((読込んだJPEGの個数*90)-360)を設定すればいいのですが、ルートのScriptとムービークリップのScriptの動作タイミングが良く理解しておらず苦戦しております。 (どちらのScriptも1フレーム目に記述しています)
補足
お教え頂いたように記述すると確かに複製しながら複数のJPEGを横展開する事が出来ましたが、マスクレイヤーの配下のレイヤーにムービークリップを配置し、そのムービークリップの中にJPEGを読込みたいと思っています。 実行してみましたが、表示は問題無く行なわれますが、マスクが掛からない、読込んだJPEGが全て見えてしまうんです。 マスクレイヤーは、横270X縦130の矩形で作っています。 その配下のムービークリップの中に横90X縦130のJPEGを複数読込んで表示したいのです。(ScrollBarコンポーネントを利用しています) マスクレイヤーの使い方には合っていないのでしょうか?。