• ベストアンサー

コンポーネントのscrollpain

を使って、その中に別のswfを表示させた場合、その表示されているswf内のボタンは反応しないものなんでしょうか? 例えば「001.swf」というファイルの中にscrollpainを使って「txt001.swf」というファイルを表示させたとします。その「txt001.swf」の中にリンクボタンがあり、そのボタンにActionScriptで、 on(release){ getUrl("○○.html",_blank); } と記述します。 txt001.swfのみで表示させた場合は、きちんと別ウィンドウで指定のURLに飛ぶのですが、それを入れ子にした001.swfのプレビューでは、URlに飛ばないし、ロールオーバー(色を変化)さえも、反応しません。 なにか他の指定の仕方があるのでしょうか?教えて下さい。 FLASHは「MX2004」です。 よろしくお願いします!

  • Flash
  • 回答数1
  • ありがとう数1

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

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

ScrollPane コンポーネントに表示するコンテンツが、ドラッグ可能( scrollDrag パラメータが true )になっていませんでしょうか? ドラッグできるように設定している時は、読み込んだムービーが持っているボタンは反応しなくなります。 例えば、ムービークリップ clip の中にボタン btn を配置してあるとします。 clip に rollOver や release など、ボタンとしてのイベントを利用するスクリプトを書くと、clip 全体がヒット領域(マウスが反応する部分)になります。 btn は clip の一部でもあるのですから、たとえ btn の上でマウスイベントが発生したとしても、Flash の内部では clip でのイベントと見なされます。 そのため、btn にいくら「オーバー」のフレームを定義したり release イベントを使ったスクリプトを書いても、btn ではマウスイベントがそもそも発生しないことになるので、意味を持ちません。 ScrollPane コンポーネントは、内部にムービークリップを持っています。ScrollPane 内に表示するムービーはこれに読み込まれ、読み込んだムービーが持っていたボタンやムービークリップなどは全て、このムービークリップの子になります。 コンポーネントパラメータの scrollDrag が true の時は、読み込み用のムービークリップに press と release イベントを利用する処理が定義されて、コンテンツのドラッグが可能になります。 先述の通り、親のムービークリップがボタンイベント( rollOver や release など)を利用している時は、子のボタンイベントは検出されなくなります。 コンテンツのドラッグが可能な時に、読み込んだムービーにあるボタン等が反応しなくなるのはこのためです。 解決策として一番簡単な方法は、ScrollPane 内のコンテンツのドラッグを禁止することです。 ドラッグを禁止( scrollDrag パラメータを false )すれば、読み込んだムービーの親にあたるムービークリップにはボタンイベントを利用するスクリプトが定義されず、このムービークリップ全体がヒット領域になることはありません。 読み込んだムービー内のボタンでのマウスイベントは通常通り検出されますから、正常に機能します。 release イベントやボタンシンボルの「オーバー」フレームによらずクリックやロールオーバーを検出できる仕組みを工夫すれば、ドラッグを可能にしながらもムービー内のボタンを有効にすることができます。 release イベントや「オーバー」フレームと同等の機能は、ボタンシンボルの代わりにムービークリップを使い、マウスが動いた時やボタンが押された時に発生する mouseMove と mouseUp イベント、それからムービークリップとある1点の座標との衝突判定を見る hitTest を利用して作れます。 ただ、ScrollPane 内に読み込んだムービーが持っているムービークリップまでのターゲットパスが少々ややこしいところで、不可能ではないけれど、それ相応の ActionScript の知識も必要になります。 ドラッグできるようにしなければならない理由がないのでしたら、ScrollPane 内のコンテンツのドラッグを禁止した方が早いと思います。

fe2-dicapoo
質問者

お礼

とても詳しく説明頂きましてありがとうございます。 scrollDragをfalseにすることで、問題は解決しました。 FLASHは、本当に奥の深いソフトなので、その分勉強のし甲斐があります。 また何か質問するかもしれませんが、その時はヨロシクお願いします。

関連するQ&A

  • フラッシュのswfをHTML内のiframeの領域に埋め込むことは出来ますか?

    ACTION SCRIPT初心者です。 htmlのiframe領域にswfのファイルを埋め込み、そのフラッシュが動いて 表示されたボタンをクリックすると、指定のURLがいままでswfファイルを表示していた iframe領域に表示されるようにしたいのです。 その場合、 "_blank"の部分をどのように記入すればいいのでしょうか? わかる方、教えてください!宜しくお願いします! on (press) { getURL("http://www.goo.ne.jp/", "_blank"); }

    • ベストアンサー
    • Flash
  • flashスキンからの小窓表示

    ホームページを作っているのですが 今回flashスキンでメニューを作りました。 flashスキンをDLした際に一緒に入っていた txtファイルを書き直して完成はしているのですが リンク先をJavaScriptを使って小窓表示にしたいんです。 普通にhtmlから小窓表示はできるのですが flashスキンを用いたhtmlはswfファイルとtxtファイルを 自動的に読み込むような形で作られていて タグをどのように変えたらいいのか困っています txtファイル内では &menu1=メニュータイトル名& &url1=URL先& &target1=_blank& このようなプログラムなのですが URLを入れると通常の新ウィンドウが開きます 小窓表示(サイズ指定)するにはどうすればいいのでしょうか? swfファイルをいじるのか txtファイルをいじるのか htmlファイルのHEAD~HEAD内に JavaScriptのプログラムをいれるのか? さっぱりわかりません flashスキンからの小窓表示・・・ わかる方教えて下さい。。。。。。。 宜しくおねがいします

  • getURL の変数?

    FLASHバナーから任意のURLにリンクする際、キャシュ漏洩を防ぐため、 -- SWFファイル上のボタンに組み込むActionScript(Flash 5以降の場合) -- on(release) { if ((clickTAG.substr(0, 5) == "http:") or (clickTAG.substr(0, 6) == "https:")) { getURL(clickTAG); } } と記述するのが通例のようですが、実際のリンク先はどのように設定すればいいのでしょうか? 変数で指定すればいいのかなと思うのですが、その記述方法がわかりません。 切羽詰ってしまいました。よろしくお願いします。

  • 外部SWF内で設定したリンクが効かない

    本体SWFに、「外部SWFのファイル名」と「リンク先」が書かれたXMLを読込んでいます。 本体SWFで外部SWFを表示させ、そのSWFにリンク(A)を設定しています。 (図の様な感じです) このリンク(A)は効くのですが、外部SWFにはファイル自体にリンク(B)を設定しているのですが、このリンク(B)が効かないので、困っています。 ActionScriptは3で書いています。 【外部SWFに書いたリンクの設定】は、 btn.addEventListener(MouseEvent.CLICK,clickHandler); function clickHandler(e):void { var url:URLRequest = new URLRequest("http://goo.ne.jp/"); navigateToURL( url, "_blank"); } ..................です。 ActionScript2で、on(release)で書いたものを 読込んだ場合はちゃんとリンクしたのですが、 どのようにしたらよいのでしょうか。 ご教授お願いいたします。

    • ベストアンサー
    • Flash
  • [flash pro8]パブリッシュ後、getURLが_blankしか効きません。

    _rootにベタ塗りの四角いボタンを設置し、以下のASでリンクをしようとしたのですが、htmlへパブリッシュ後、どういう訳か飛んでくれません。 on (release) { getURL("http://goo.ne.jp/"); } しかし以下のASなら飛びました。 on (release) { getURL("http://goo.ne.jp/", "_blank"); } _selfも_parentも_topもリンクが飛びませんでした。 ちなみにローカル、サーバー関わらず、swfファイルのみならウィンドウ指定はどれにしても飛びました。 ・バージョン→flash pro8 ・OS→XP sp2 flashMXの時はうまく出来ていたのですが、flash pro8ではどうしてもうまく飛んでくれません。 それに_blankのみ飛ぶというのも私には謎です。 お分かりになる方がいらっしゃいましたら、どうすれば良いかご教授くださいますと大変有難いです。 どうぞ宜しくお願いいたします。

  • flash ActionScript textファイルの文字列の置換

    お願いいたします。 flash ActionScript2.0 で、外部で読み込んでいるtxtファイル内の「,」半角カンマの表示を、swfファイルで「全角(半角)スペース」に置き換えて表示させたいのですが、その場合どのようなScriptを記述すればよいのですか? 現在→ ムービークリップに対して、 onClipEvent (load) { this.loadVariables("flash.txt"); } というActionScriptを記述して、flash.txtという外部ファイルを読み込んでいます。 そこまでは、問題なくできたのですが、 flash.txtファイル内「,」半角カンマの表示を、swfファイルで「全角(半角)スペース」に置き換えて表示させるscriptがわかりません。 教えて下さい。お願いいたします。

    • ベストアンサー
    • Flash
  • 外部ファイルでテキスト、リンク先URLを指定したボタン

    FLASH MX WindouwsXPを使用しています。 宜しくお願いします。 外部ファイルよりテキスト、URLを読み込んだマウスアクションの ついたリンクボタンを作成しているのですが、URLが上手く 読み込めません。 ボタンの構成(重なり)は上から ・ボタンインスタンス ・ムービークリップインスタンス ・ダイナミックテキスト の順です。 ダイナミックテキストは LoadDataName = "topmenu26.txt"; loadVariables(LoadDataName, ""); _root.mm1.text = menu1; と読み込み正常に表示されています。 ムービークリップもボタンにActionScriptを記入することで 正常に作動しています。 しかしボタンのリンクだけが正常に作動しません。 ボタンには外部よりリンク先URLを読み込む為、レイヤー最上段の 1フレーム目に loadVariablesNum("topmenu26.txt", 0); と記入し、ボタンには on (release) {getURL(url1, target);} で外部ファイルのに記入したURLを読み込んでいます。 「シーン1」にこのボタンを設置すると、実際この方法で正常に 動きます。 しかし、このボタンを「シーン1」からシンボル内に設置すると 1フレーム目に記入した loadVariablesNum("topmenu26.txt", 0); と、ボタンの on (release) {getURL(url1, target);} がファイルを読み込まずリンクだけ動かなくなってしまいます。 フレームに記入した loadVariablesNum("topmenu26.txt", 0); の記入場所をシンボル内に変更したり、いろいろ試してみた のですが、解決できませんでした。 どのように変更すればシンボル内でもこのようなボタンが 設置できるのでしょうか? また、ボタンに外部からURLを設定する場合、他にどのような方法が あるのでしょうか? 宜しくお願いします。

    • ベストアンサー
    • Flash
  • flash lite 1.1容量制限内におさめたい。

    96.4KBのswfファイルです。 ファイル内には、30個のボタンが3つのキーフレームに分けて配置してあります。 ↓ボタンのASです。 on(release){ getURL("http://*********************"); } 今回、そのURLが30個すべて大幅に長くなることになりました。 ============================== 【30(ボタン)×0.5KB=7.5KB】 100KBを超えてしまいます。これでは携帯で表示できません。 ============================== そこで打開策を考えました。 (1)長いURLを変数に出来るのかな? (URLの文字列はほぼ同じだったので。) そこで試したのが、 空白キーフレームにインスタンス名(s1)を付け、 (s1)のAS  (変数)= "長ーいURL"; を記述。 30個のボタン達に…(今回は12個目として変数12としてます。) on(release){     call(s1)     getURL("変数12"); } です。 失敗です。(URLは"変数12"と表示されてもリンクはしませんでした。) (1)変数はURLに成りうるのか? (2)変数は3つのキーフレームで使いまわせるのか? (3)容量は抑えられのか? です。 何卒よろしくお願いいたします。

  • FlashとJavaScriptの連携について。

    HTML内に設置したFlash(SWFファイル)のボタンを押すと、別ウインドウのHTMLページが開く方法について。 現在ホームページを制作していますが、FlashとHTML内のJavaScriptとの連携が上手く出来ないので質問します。 問題のスクリプト・タグを記載します。 -----以下、HTML(index.html)内に記述したJavaScript----- <script type="text/javascript"> function winopen(top.html,1024,768{window.open(top.html,"name","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0" , Width=" + 1024 + ",Height=" + 768); </script> -----ここまで----- -----以下、Flash(SWFファイル)のボタンに対して記述したActionScript----- on (release) { getURL("javascript:winopen("top.html",1024,768);", "_blank"); } -----ここまで----- この状態で、HTM内にobjectタグを用いて設置したFlash(SWFファイル)のボタンが上手く動作してくれません。 希望する動作としては「index.htmlに設置されたFlash(SWFファイル)のボタンを押す」→「別ウインドウ(1024×768のサイズ、各ツールバー等非表示、スクロールバーのみ許可)が立ち上がりtop.htmlが表示される」という流れです。 ※移動先のtop.htmlには、特にJavaScriptの記述はありません。また、top.htmlはHTML内にFlash(SWFファイル)を設置した見た目だけフルFlashのページになります。 ご不足の記述等があれば、すぐに補足追加させて頂きます。 ご回答、宜しくお願い致します。

    • ベストアンサー
    • Flash
  • Flash設置とターゲット指定について

    Flashメニューを使ってHPを作っています。txtファイルにターゲットを指定する項目があるのですが、フレームで上下2分割にしたindexページのbottomに表示させるにはどうしたらよいのでしょうか?メニューボタンは複数あり、&target1=_blank& &target=_blank& というように並んでいます。_blankの部分を_bottomに変更するだけではダメなのでしょうか?何度やっても別ウィンドウで表示されてしまいます。初歩的な質問だとは思いますがどなたかよろしくお願い致します。

専門家に質問してみよう