• ベストアンサー

Flash間のパラメーターの受け渡し

少し前に同様の質問をさせて頂きましたが、他の質問を含んでおり、そちらの方が中心となって話が進行しているので、新たに質問させて頂きます。 サムネイル画像が格納されているフォルダーが複数あります。メニュー画面(ページ)では、複数のフォルダーのうちサムネイル表示したいフォルダーを指定します。 それを受けてサムネイル表示画面(ページ)では、指定されたフォルダー内のJPEGファイルを読み込んで表示すると言う仕組みを構築したいと思っています。 メニュー画面からサムネイル表示画面にパラメーターとして受け渡しの方法がわかりません。 宜しくご教授ください。 (パラメーターは、FLAG,コンスタント(文字列)何でも構いません。)

  • Flash
  • 回答数6
  • ありがとう数5

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

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.5

Flash MX からはムービークリップをボタンと同様に使えるようになり、on アクションも利用できるようになりました。 ( Flash 5 では、ムービークリップで on を使うとシンタックスエラーになっていました) 原因は不明(単に、私が知らないだけかもしれません ^^;)なのですが、trace アクションなどで確認すると、press イベントが検出されていて on アクション自体は実行されているのは確かなのに、一部のスクリプトが動作したりしなかったりと、挙動不審な場合があるようです。 しかし、違うファイルを作って試してみると、全く同じスクリプトでも、何の問題もなく動作することもあります。 私自身もこの手の怪現象は何回か見ているのですが、未だに原因がよく分かりません。 ちなみに、以前、このような質問で回答したこともありますので、ご参考までに。  ・ムービークリッププロパティの変更   http://okweb.jp/kotaeru.php3?q=808667 on( rollOver )では反応しない(イベント自体は検出されている)が、MovieClip.onRollOver で定義した場合は反応します。 ところが、違うファイルでは on( rollOver ) の中でも、_visible プロパティで表示・非表示が制御できる(スクリプトが正常に動く)という、不思議な現象でした。 さしあたって、MovieClip.onPress で試してみるか、どうしてもダメならボタンシンボルを利用してはいかがでしょうか。 例えば、ムービークリップのインスタンス名が clip なら、  clip.onPress = function ()  {   gotoAndStop( "s2" , 1 );  }; で、いかがでしょう。このスクリプトは、メインのタイムラインに設定してください。

その他の回答 (5)

  • HapHands
  • ベストアンサー率73% (19/26)
回答No.6

こんばんは。下記の部分だけですが。 > ボタンアクションに以下のScriptを記述しました。 > > on (press) { >   gotoAndstop("s2", 1) ; > } > > 結果はOKでした。 > > 次に、描いた大きな矩形をムービークリップにして以下のScriptを記述しました。 > > on (press) { >    gotoAndstop("s2", 1) ; > } > > 全く同じScriptなのですが、無反応です。 MXからはムービークリップインスタンスにもonアクションを使用できるようになったのはDPEさまがご指摘の通りです。 が、ボタンインスタンスとムービークリップインスタンスで同じスクリプトが必ずしも動作するわけではありません。 これはターゲットパス(this参照やthisを省略した場合のデフォルト参照)が異なるからです。 ボタンインスタンス上で 「gotoAndStop( "s2" , 1 )」 と記述した場合にはボタンインスタンスが配置されているタイムライン上でgotoAndStopを実行します。 が、ムービークリップインスタンス上で 「gotoAndStop( "s2" , 1 )」 と記述した場合にはそのインスタンスのタイムラインでgotoAndStopを実行しようとします(これはonアクションでもonClipEventアクションでも同様です)。 以上をご参考に正しい指定を考えてみてください。

  • DPE
  • ベストアンサー率85% (666/776)
回答No.4

#2です。 シーンの移動は簡単ですよ。おなじみの gotoAndPlay を使います。  gotoAndPlay( "シーン名" , フレーム番号 );   ※フレームを番号ではなくフレームラベルで指定する時は、" "でくくって文字列にします シーンやフレームを移動してから、そこで停止させる gotoAndStop もあります。 もちろん、シーン1から2へ行くことも、シーン2から1へ戻ることもできます。 実は、gotoAndPlay / Stop は2種類あります。このようにシーンを移動できるもの( Flash Player 2 から使用されていて、歴史も古い)と、MovieClip オブジェクトのメソッドの1つである、引数がフレームの指定しかない MovieClip.gotoAndPlay / Stop(こちらは Flash Player 5 以降で使用可能)です。 シーンは _root だけの概念で、ムービークリップシンボルにはありません。ですから、MovieClip オブジェクトのメソッドである MovieClip.gotoAndPlay / Stop には、シーンの指定がないのです。 シーンを指定できる gotoAndPlay / Stop は、メインのタイムライン、およびステージ上にあるボタンやムービークリップでのオブジェクトアクション(要するに、対象となるタイムラインが _root である場合)でのみ、使用可能です。ムービークリップのタイムラインや、入れ子になっているボタン・ムービークリップでは使用できません。 指定したシーンやフレームが存在しない場合は、最初のシーンやフレームに戻ってしまうことがあります。 Flash のデフォルトのシーン名は、”シーン 1 ”というように、シーンと番号の間に半角のスペースが入っていますので、ご注意ください。また、半角・全角、大文字・小文字も区別されますから、この間違いにもご注意を。予め、分かりやすい名前に変更しておくといいでしょう。 シーンが複数ある場合、何も指示しなければ、シーン1→2→・・・と、自動的に再生されていってしまいます。 シーン1で、例えばボタンが押されるまで待ちたい場合は、フレームに stop(); アクションを入れてタイムラインを止め、ボタンが押された時に、gotoAndPlay または gotoAndStop でシーン2へ移動するようにします。 シーンの概念は、テレビドラマや映画などで、いわゆる”シーン(場面)”ごとに制作していくような感覚で考えると、分かりやすいかと思います。 ドキュメントのサイズや背景色・フレームレート等は、どのシーンでも同じになります。シーンごとに違うサイズ等を設定することはできません。 編集するシーンを切り替える時は、ステージの右上に並んだ2つのアイコンの、左側のアイコン(映画監督が持っている、キュー出し?のようなもののデザイン)をクリックし、編集するシーンを選択します。 「ウィンドウ」→「デザインパネル」→「シーン」で、シーンを管理するパネルが開きます。このパネルでは、編集するシーンの切り替えのほか、シーンの追加・削除・複製・名前の変更・再生順序の入れ替えができます。 詳しい操作については、ヘルプの「 Flash ユーザーガイド」→「 Flash ドキュメントの操作」→「シーンの操作」をご参照ください。 ムービーを作る目的や、ページのデザインと相談になりますが・・・ 例えば商業目的のページで、メニューに「パソコン」「デジカメ」「携帯電話」のカテゴリーがあるとします。 「パソコン」が選択された時は「パソコン」の画像と説明を、「デジカメ」が選択された時は「デジカメ」の画像と説明を・・・というように、選択されたカテゴリーの画像のサムネイルを表示し、なおかつ HTML で説明文もカテゴリーごとに内容を変えたい場合は、メニューとサムネイルのムービーは2つに分けざるをえなくなるでしょう。 この場合は、違う HTML ファイルにある異なるムービー同士のやりとりになりますから、パラメータの受け渡しは難しくなります。 そうではなく、例えばフォトアルバムや作品の展示のように、HTML の本文はどのフォルダが選択された時も同じで、ムービーの中で表示する絵だけ入れ替わればいいというのであれば、ムービーは1つで充分です。 同じムービーの中でのやりとりになりますので、パラメータの受け渡しも簡単です。 また、いっそのことメニューとサムネイル画面を一体化してしまうのも1つの手です。 メニュー部分とサムネイル画面をそれぞれムービークリップにし、全てを1つのフレームに配置して、ボタンでカテゴリーが切り替わるたびにサムネイル画面も切り替わるようにする、といったところです。 この場合はシーンの移動もなくなり、同じフレームに並んだムービークリップ同士の制御となります。 作る目的とデザインの都合で、方法も変わります。 発想を柔軟にして、いろいろ試してみてください。

teddy1014
質問者

お礼

いつも適切な回答を頂き、感謝しております。 メニュー・サブメニュー・サムネイル表示と3つのHTMLファイルに(特に意味無く)分けていたのを、一つにして作成してみます。 メニューに1シーン、サブメニューに複数のシーン、サムネイル表示に1シーン、と言った具合にしてみます。 あとは、先日教えて頂いたマスクレイヤー配下に外部から読込んだJPEGを配置する事が解決すれば良いのですが。

teddy1014
質問者

補足

試しに、 シーン1に大きな矩形を描き、シーン2の円形を描きました。 シーン1のボタンシンボルを配置し、ボタンの押下をトリガーにしてシーンが移動するようにしました。 ボタンアクションに以下のScriptを記述しました。 on (press) {   gotoAndstop("s2", 1) ; } 結果はOKでした。 次に、描いた大きな矩形をムービークリップにして以下のScriptを記述しました。 on (press) {    gotoAndstop("s2", 1) ; } 全く同じScriptなのですが、無反応です。 ちなみに、 on (press) { getURL("./xxx_test.html"); } このようなScriptは正しく動きます。 何故なんでしょうか?。

  • mach999
  • ベストアンサー率75% (36/48)
回答No.3

なるほど。 それならばLocalConnectionを使えば実現できます。 今試してみましたが、少なくともローカルでは成功しました。 ただしFlash MX、Flash MX 2004しか対応してません。 参考になりそうなURLを挙げておきます。 http://f-site.org/archives/000252.html あと、この本は役に立つのでお勧めです。 http://www.esbooks.co.jp/books/detail?accd=31016404 頑張ってください。

  • DPE
  • ベストアンサー率85% (666/776)
回答No.2

ふと思うのですが。 わざわざ2つの swf ファイルに分けなくても、メニューとサムネイル画面を1つのムービーにすれば、パラメータの受け渡しは簡単です。 例えば、シーン1をメニュー画面、シーン2をサムネイル画面とします。 シーン1のフレームアクションで、変数を1つ用意します。ここでは仮に、folder という名前だとします。 メニューはおそらく、ボタンで選択するようなタイプではないかと思います。ボタンが押された時、対応する値なりフォルダ名なりを変数 folder に代入し、シーン2へ移動します。 シーン2でも、シーン1にあった変数は利用できます。 画像を読み込む時は、  loadMovie( _root.folder + "/image01.jpg" ); といった具合に、フォルダ名を保持する変数を利用してファイル名を指定するだけです。 メニュー部分を HTML のフォームで作る・メニュー画面とサムネイル画面は常に同時に表示しておきたいなどの事情ならともかく、単に、メニューでフォルダを選ぶ→そのフォルダにある画像のサムネイルを表示する、といった流れのムービーであれば、メニュー画面とサムネイル画面を別々の swf ファイルにする必要はないと思います。 1つのムービーの中にメニューもサムネイル画面も存在していれば、サムネイル画面からメニューに戻り、違うフォルダを選択し直してサムネイル画面を表示するといったことも可能です。 メニューとサムネイル画面を別々の swf ファイルに分けてしまうと、スクリプトや処理が難しくなるだけで、メリットはそれほどないと思いますが。

teddy1014
質問者

補足

いつもありがとうございます。 シーン1からシーン2へ、シーン2からシーン1への移動って実施した事は無いのですが簡単ですか?。 メニューとサムネイル表示との行き来が必要なので、別々に作成しなければならないかなぁと思っていました。 この場合、ドキュメントサイズは全て同一ですか?。 同一じゃなければ、今まで作成したFLASHは別々じゃなくて 全て一つのFLASHに格納出来ると言う事ですね?。 「シーンの挿入」でシーンを追加する事は知っていたのですが、追加すると追加したシーンしか見えないので使う事をしませんでした。

  • mach999
  • ベストアンサー率75% (36/48)
回答No.1

1つのHTMLファイル内にMenu.swfとThumbs.swfの2つのファイルがあるんですか? それとも、違うHTMLファイルにそれぞれMenu.swfとThumbs.swfあるとか?

teddy1014
質問者

補足

違う画面を想定していますので、別のHTMLファイルで稼動させるつもりです。 最後の手段は、サムネイル表示のSWFは1個用意しておき、HTMLファイルは複数(フォルダー分)用意し、各々のHTMLにはPARM=でどのフォルダーを読むかのフラッグをパラメーターとしてFLASHに受け渡す。条件設定のFLASHではgetURLで呼び出すHTMLファイルを変える。 ちょっと泥臭いやり方ですが、致し方ないかなぁと思っています。

関連するQ&A

  • パラメーターの受け渡し

    あるページで、Flashにて作成した絞込みの条件設定画面があり、そこで選択された条件にてファイルを読見込みたいと思います。 具体的には、 フォルダーが複数(4つ)存在しています。 その中には各々複数のファイルが格納されています。 ファイルは「imgxx.jpg」という命名規則に従っています。 (xxはSuffixです(01~99)) 条件設定画面では、どのフォルダーのファイルを読み込むかを選択します。 サムネイル表示画面を作成し、そこには上記で選択されたフォルダーを対象に、その中にあるファイルを全て読み込んでサムネイル表示したい。 フォルダー分のFlashを作成すれば良いのですが、サムネイル表示画面は1つだけ作成し、使い回ししたいと考えています。 何か良い方法をご教授ください。 どうぞ宜しく御願い致します。

    • ベストアンサー
    • Flash
  • ruby on railsでの画面間 パラメータ受け渡し方法

    ruby on railsでの画面間のパラメータ受け渡し方法についての 質問です。 入力画面1→入力画面2→確認画面→(登録) のような画面遷移を行う場合、入力画面1、2の内容を 登録処理で使用するにはどのようにしたらよいでしょうか? 1.Sessionに格納する。 2.Hiddenフィールドを使用して、画面間で、受け渡しをする。 3.その他、良い方法があれば教えてください。

  • クエリのパラメータ

    お世話になります。 ASP.netの勉強中です。 クエリのパラメータに関して、わからないことがあり、質問させて頂きます。 SqlDataSourceのクエリでパラメータを指定する場合は"@"を指定すればよいと 言うことを調べたのですが、@を指定してクエリを作成したところパラメータとは 認識されず、文字列となり、パラメータの定義の画面が表示されません。 (クエリは以下のようになります。) SELECT 形状マスタ.* FROM 形状マスタ WHERE ([コード] = @CD) "@CD"を"?"にすると、パラメータの定義画面が表示され、実行した場合も パラメータとして認識されています。 出来れば"@"でパラメータを指定したいので、教えて頂ければ幸いです。 初歩的な質問で申し訳ありませんが、よろしくお願い致します。

  • 「パラメータ」の意味を教えて下さい

    お世話になります。プログラミング初心者です。 下記の文章の「パラメータ」は何を意味しているのでしょうか。 ------- 可能性としては、選択画面へ移るときか、そこから元画面に戻るときに、パラメータの値を落としてしまっているのではないかと思います。 以前、編集ボタンの数を変えたときに、パラメータの受け渡し行が削除されたのかも知れません。 もしそうであれば、cgiの問題ではなくhtmlか、編集ボタンを定義している部分の問題が考えられるでしょう。 別のサーバから、もとの編集ボタンの画面が表示されるように、htmlなどをコピーしてみるといいかもしれません。 それで、もし問題が解決したら、パラメータの種類や数などをチェックすればいいと思います。 ------ 「パラメータの受け渡しが削除されているのかも~・・・」 「パラメータの種類や数をチェック~・・・」 ↑この部分が理解できません。 勉強不足で大変恐縮ですが、教えて頂けますでしょうか。 よろしくお願い致します。

  • 画像ファイルのみ取り出して印刷したいのですが・・

    質問です。 指定した複数のフォルダに入っているjpeg画像ファイルのみを一括して抜き出し、 それらをサムネイルで一覧表示し、印刷したい画像をチェックマーク等で選択し 一括で印刷できるソフトってありますか? Vixの最新バージョンを使ってるんですが、これではできませんよね?いろいろ試してみたのですが・・。

  • Accessのクエリのパラメーター

    毎回ここでお世話になっております。 2つ質問がありまして一つは・・・ パラメーターで複数のレコードを指定できるのかということです。 例えば、オートナンバー型にパラメーターを設定していて、1番と3番のレコードだけを表示する(2番のレコードは除く)方法はあるでしょうか? もう一つは・・・ パラメーターでワイルドカードは使えますか? 使えない場合、クエリでわざわざ条件抽出する以外で、ワイルドカードを適応させる方法をお教えください。 以上2つの質問お願いします。

  • javascriptを使ってパラメータの受け渡し

    お世話になります。 親ウィンドウから検索用PHPファイルを子ウィンドウで開き、DB検索を行う検索機能を作っています。 小ウィンドウでの検索結果を function window_close(){ opener.FormA.textA.value = formB.textB.value window.opener.document.getElementById("textA").focus(); window.close() } というスクリプトで親ウィンドウの該当するテキストに渡すようにしています。 この方法でも検索はでき、検索結果を親ウィンドウ側で受け取ることは出来ています。 しかし、この検索画面を複数のテーブルに対して使おうとすると親ウィンドウからパラメータを渡 すことができずテーブルの数だけPHPファイルを作らなくてはなりません。 そこで、動的に対象テーブルを変えることができないか悩んでいます。 イメージとしては、functionの引数でテーブル名を指定し、その値をPHPに渡したいと思っているのですが可能でしょうか。 Jqueryの$.post()が使えるかなとも思ったのですが、正直使い方がよくわかりませんでした。 どなたかよい方法があれば教えてください。

  • IEXPLORE.EXEのパラメータについて

    インターネットエキスプローラの本体であるIEXPLORE.EXEは、'-k'のパラメータを指定することによりウィンドウを全画面表示で開くことができますが、'-k'以外にもIEXPLORE.EXEにはパラメータがあるのでしょうか? 参考のHP等教えていただけると助かります。 よろしくお願いいたします。

  • Flashで表示されたサムネイルをJavaScriptで拡大表示したい

    HTMLはある程度わかるようになってきただけのJavaScript初心者なのですが、HP制作の途中、Flashを使っていて分からないことが出てきました。 教えていただけるとうれしいです。 Flashのメニューを使っていて、そのメニューはリンク先がカスタマイズ可能です。 リンク先の指定は、テキストファイルの中に記述されている、 「 &url5=http://www.xxxxx.xxx.xx/& 」という場所で指定することになっています。 フォトギャラリーの写真のサムネイルをメニュー項目にして、Flashメニューでサムネイル選択したいと思っているのですが、そのサムネイルをクリックしたときに、同じページの別のテーブルに、そのサムネイルの大きな画像を表示させるということをしたいのですが、できるのでしょうか。 もしできるのなら、教えてほしいです。 Flashメニューでないサムネイルをクリックして拡大画像を表示ということはJavaScriptでできるのですが、Flashメニューで、となると不可能なのでしょうか。 よろしくお願いいたします。

  • PHPで画像ギャラリーを作成

    PHPで画像ギャラリーを作成したいのですが、 条件は以下です。 ・作品が合計で16点。 ・それぞれの作品に対し画像が4~7点 ということで、以下のように作成できたらと 思っています。 1.商品ごとにフォルダを作成 2.画面左側にサムネイルで各作品の親写真を表示 3.サムネイルをクリックすると、画面の右側に大きな写真を表示 4.右側の画像の上には、フォルダに格納されている画像の枚数と、 Back Nextを表示させフォルダ内の画像を表示 フォルダを作成して、サムネイルを表示、 そのフォルダ内の画像を表示させる、という方法は http://nettuts.com/videos/screencasts/scanning-folders-with-php/ にてみつけたのですが、 複数のフォルダで、というのは みつけられませんでした。 初心者のため、大変初歩的な質問で申し訳ございません! どなたかご存知の方、 ご教授お願いします!!!!

    • ベストアンサー
    • PHP

専門家に質問してみよう