• ベストアンサー

【FLASH】コンボボックスがあるとIEでスクロールできない。バグ?

noname#35109の回答

noname#35109
noname#35109
回答No.1

同じ現象について書かれているのかどうかはよくわかりませんが, 確かに UI 系のコンポーネントのうちのいくつかを使用した場合, Flash にフォーカスを当てた状態でマウスホイールの回転させても, ブラウザに表示されているページ全体がスクロールしませんね。 (スペースキーでのスクロールはコンポーネントを使わなくても不可ですが。) また, 一度,コンポーネントをステージ上に配置して, ステージ上から消したとしても, マウスホイールの回転で,ページ全体のスクロールはできないままですね。 しかし, Flash からフォーカスをはずすと, つまり Flash 以外の部分を一度クリックすると, フォーカスはページ側に戻るので, マウスホイールの回転で,ページ全体のスクロールは可能になりますよ。 この点は同じ現象なのでしょうか? この点について同じ現象なのかどうかがわかりませんが。 動作環境: Windows XP,IE6.0,Flash Player 9 です。 こうなる点についての原因はよくわかりませんが, この辺が関係しているのかもしれません↓。 (関係していないかもしれません。) コンポーネントに続けてButtonを連続クリックするとイベントが発生しない http://www.fumiononaka.com/TechNotes/Flash/FN0510008.html > 原因 > コンポーネントインスタンスに対するフォーカスを管理する > FocusManagerクラスに問題があるようです。 対処法ですが, 私の環境では上にも書きました通り, Flash からフォーカスをはずすと, マウスホイールの回転で,ページ全体のスクロールは可能になります。 ですから, これを,JavaScript で Flash からフォーカスを自動的にはずすようにすれば一応は対処できました。 まず,簡単な例では, ステージ上にボタンを作成して, 次のように書き,パブリッシュしてそのボタンをクリックすれば, マウスホイールの回転で,ページ全体のスクロールは可能になります。 --------------------------------------- on (release) { // 表示しているウィンドウから一旦フォーカスをはずして getURL("javascript:window.blur();"); // 再び表示しているウィンドウにフォーカスを当てる getURL("javascript:window.focus();"); } --------------------------------------- あまり格好の良い方法ではありませんね。 JavaScript 専門の方ならもう少し良い方法を思い付くかもしれませんが, 私の能力ではこれしか考え付きませんでした(これしかうまく行きませんでした)。 実際は, 上に様にボタンをクリックするのではなく, マウスホイールの回転やスペースキーのプレスで, 上記のスクリプトを実行させれば良いわけです。 次のスクリプトは, _root の フレーム1 などに書くスクリプトです(コピペ可能)。 //////////////////////////////////////////////////// // --- ★フォーカス移動に関して ------ // JavaScript でフォーカスはずすユーザ定義関数の定義 function focusMove() { // 表示しているウィンドウから一旦フォーカスをはずして getURL("javascript:window.blur();"); // 再び表示しているウィンドウにフォーカスを当てる getURL("javascript:window.focus();"); } // // --- ★マウスに関して ------------- // マウスリスナーオブジェクトの作成 var mouseListener = new Object(); // // マウスホイールが回転したときの動作定義 mouseListener.onMouseWheel = function() { // ユーザ定義 focusMove の実行 focusMove(); }; // // マウスリスナーオブジェクトをマウスクラスのリスナーに登録 Mouse.addListener(mouseListener); // //--- ★スペースキーに関して --------- // キーリスナーオブジェクトの作成 var keyListener = new Object(); // // キーが押されたときの動作定義 keyListener.onKeyDown = function() { // スペースキーが押されたら if (Key.isDown(Key.SPACE)) { // ユーザ定義 focusMove の実行 focusMove(); } }; // // キーリスナーオブジェクトをキークラスのリスナーに登録 Key.addListener(keyListener); //////////////////////////////////////////////////// マウスホイールの回転も,スペースキーのプレスも, 1回目の実行はフォーカスの移動に使用されるため, 2回目以降の実行でスクロールが有効になります。 マウスホイールの場合は,1回目とか2回目とかを普通はあまり意識しないので, 普通に使えば普通に近い感じでスクロール可能だと思いますが, スペースキーの場合は,確実に1回目のプレスではスクロールしないのがわかってしまうと思います。 あまり良いアイデアとも思えませんが, 1つの対処法になりますでしょうか。  

ikataro
質問者

お礼

なるほど! JavaScriptが大活躍ですね。 とりあえずバグってことである意味あきらめがつきました。 コンボボックスは他にもいくつか問題があるようなのでいっそ自分で自作してみようかと思います。 丁寧な解説どうもありがとうございました。

関連するQ&A

  • IE ブラウザをスクロールですると画面がぶれたり崩れる

    Firefox・Netscape では問題なく普通に表示されるのですが、 IEでページ(HTMLに画像やswfがのっかっているごくごく普通のページ) を表示して、ブラウザのスクロールやマウスについてるスクロールなどで ブラウザをスクロールすると、 画像がぶれたりFlash のレイアウトがくずれたりします。 (画像がFlash の上に重なったり…) いろいろ試してみましたが、 (Flashの比率など関係ありますか??650×472です。。。) なにが原因なのかさっぱりわからず、 一週間以上格闘中です、、、 どうか解消方法を教えてください。 お願い致します。

  • グループボックス内のコンボボックスについて

    お世話になります。 WindowsXP / VC2005 / VC++ MFC / ダイヤログベースにて開発を行っています。 グループボックス内にコンボボックスを2つ配置しています。 コンボボックスにカーソルを合わせて、マウスホイールをスクロールした際、 ボックスの中身がスクロールしないのですが、スクロールする方法をご存知でしたら教えていただけないでしょうか? グループボックス外にコンボボックスを配置した場合では、ボックスの中身がスクロールされており、 再度グループボックス内にてプロパティを変更したりと試してみたのですが、思うように行きません。 よろしくお願いいたします。

  • ActiveXコントロールのコンボボックスについて

    あるシートに、ActiveXコントロールのコンボボックスを1つ作成し、 別なシートからコンボボックスの中身を取り出すような形にしました。 コンボボックスの中身は  [****]AAAA   ※*は半角数字、AAAは全角で漢字やひらがな交じり。*は4文字。Aは最大16文字 というような形になっています。 コンボボックスの中身は、場合によって違い、最小3個、最大17個になります。 質問1:コンボボックス内の表示がAの部分の4文字までで切れてしまいます。      これが表示の限界なのでしょうか?      全て表示させることはできないのでしょうか? 質問2:コンボボックスの中身が多くなると、垂直スクロールバーが表示されますが、      これがマウスのホイールスクロールと連動しません。      連動させることは出来ないのでしょうか?

  • Flash マウスホイールの制御

    FlashのSWFファイルを組み込んだHTMLをWEB上で公開しようとしているのですが、その際のマウスホイールの動作について質問があります。 現在、MCをスクロールさせるためにコンポーネントのScrollPaneにMCを追加して表示させています。 こうした場合、Flashにフォーカスが当たっている時にマウスホイールを行うとMCだけでなくブラウザのスクロールまで反応してしまいます。 いろいろググってみるとJavaScriptと連携して制御する方法が一般的なように見受けられたのですが、本来Flashにフォーカスが当たっていないとScrollPane等は反応しないはずという記述も見受けられました。 こうしたときにはどう制御するのが一番的確な方法なのでしょうか? ご存知でしたらご指摘の程をよろしくお願いします。

    • ベストアンサー
    • Flash
  • WinXPのIEで、フラッシュ(アクションスクリプト)が見えない

    ニュースを書き込むページ(PHP)があり その原稿内容が、別のページから、フラッシュのアクションスクリプトで、テキストボックスにスクロールして見えるようになっているのですが・・・ WinXP(ホームエディション・プロフェッショナル両方) のIEで、見えません。 なお、別のブラウザ(Opera7とNetscape7.1)では見えますし、 XP以前のバージョンのOSからなら、IE(おそらくバージョンは5か6・・・)でも見えるのです。 なお、PHP・フラッシュともに頼んで作ってもらったもので、私が組んだわけではないので・・・ HTMLのパスを書き換える程度しかいじれません(--;) 何が原因なのでしょうか? あともうひとつ、WinXPに付属しているIEはあくまでも 「Internet Explorar」で、バージョン5とか6とかではないのでしょうか。 バージョン情報を見ても書いていないので・・・ ともかく早く見えるようにしたいので よろしくお願いします。

  • 【FLASH】IE6で見る場合、F5では画像更新できない。

    FLASH MX2004(Win-XP)使用者です。 ホームページ作成中にFLASH画像ファイルをあたらしいのに入れ替えて更新ボタンを押してもFLASHだけ更新されません。これはどうにもならないことなのでしょうか? 以下、状況です。 *自分のPC内でプレビューする場合です。 *Netscape7は更新できるがIE6は更新できない。 *IE6を再起動すれば更新される。 *CTRL+F5 では不可 ブラウザを閉じることなく更新できないものでしょうか? よろしくお願いいたします。

  • コンボボックスのドロップダウンリストの設定

    Excelのコントロールツールボックスからコンボボックスを作成したのですが、マウスのホイールをスクロールするとドロップダウンリストがコンボボックスの頭から離れてしまいます。 フォームツールバーから作成すれば離れないのですが、VBAでリンクを設定する関係でコントロールツールボックスから作成したいのです。 離れないように設定するにはどうしたらいいのでしょうか。 教えてください。宜しくお願いいたします。

  • CSSでコンボボックスのスクロールバーを変更

    現在、HTML+jQueryでタブレット向けのWebサイトを作成しています。 コンボボックスがあるのですが、スクロールバーが細くて手では選択しにくい為、 CSSでスクロールバーを太く変更できないかと考えています。 色々と検索しているのですが、良いサンプルなどが見当たりません。 何か参考になるサンプルなどがあれば教えていただきたいと思っています。 どうぞよろしくお願いいたします。

    • 締切済み
    • CSS
  • flash5でのスクロールバー表示

    フラッシュを使ってのHPを作ろうとしている初心者です。 マクロメディアのFlash5を使用しています。 http://flash.webkun.org/14/index.html​ ↑こんな感じで、画面の一部枠内にだけスクロールバーをつけて、 更新履歴のようなものを作りたいんですが、ソフトが古いので、 UIコーポネントのようなものがありません。 どうすれば作れますか?教えてください。よろしくお願いします。

  • 2つのコンボボックスを連動させたいのですが

    はじめまして。 Flashを始めて間もない初心者です。 2つのコンボボックスA、BがありAで選択された項目をBにも反映させたいのですが、どうスクリプトを記述したらいいのか分かりません。 初心者でも分かるようにどなたかご教授していただけないでしょうか? Flash8 professionalを使用しています。 どうぞ宜しくお願いいたします。