6


0

フラッシュファイルが4つの質問で構成されています。ユーザーが最初の質問に答えると2番目の質問が表示されます。このフラッシュはdivFlashcontentというdivに埋め込まれています。私はその間にクイズを隠して見せたいのですが。ユーザーがボタンをクリックした時( "一時停止")、クイズを隠したいです。 そして、彼が「続ける」ボタンをクリックしたとき、私はクイズを続けたい(見せたい)のです。 これにはjqueryのshow()メソッドとhideメソッドを使用しています。 しかし、問題は、私はshowメソッドを呼び出すときにフラッシュコンテンツが再びロードされている(最初からクイズを表示しています。)それは私たちが一時停止ボタンをクリックした段階を示していません。 どうすればこれを解決できますか? 私はそれが隠されるようになるのと同じ段階にフラッシュがあることを望みます

4 Answer


9


内部の `$ .hide()`メソッドはあなたの要素に対してcss: `display:none;`を行います。 毎回フラッシュがリロードされます。 フラッシュはこのCSSプロパティにはあまり反応しないため、フラッシュを別の方法で非表示にすることをお勧めします。

これはスクリーンの外に配置することであなたの要素を隠すプラグインです。 これはすべての場合に機能するわけではありませんが、それがあなたに当てはまる場合には非常に便利です。

追加するCSS:

.flashHide {
  position:absolute;
  left:-99999px;
}

そして追加するプラグイン:

(function($){
  var hideClassName = 'flashHide';
  $.fn.extend({
    flashHide: function() {
      return this.each(function(){
        $(this).addClass(hideClassName);
      });
    },
    flashShow: function() {
      return this.each(function(){
        $(this).removeClass(hideClassName);
      });
    }
  });
})(jQuery);

それからあなたはこのようにそれを使うでしょう:

$('div#flashContainer').flashHide();
$('div#flashContainer').flashShow();


1


私はこれが古いスレッドであることを知っていますが、私は既存のJSコードへの変更を必要としないものを探している人のために簡単な解決策を投稿したかったです。 私の場合は、新しいタブを作成し、SWFを埋め込んだhtmlを動的にロードする既存のTabsetコンポーネントがありました。

IMOでは、これを処理する最も簡単な方法は、SWFの周囲にiframeラッパーを配置することです。そうすると、Divコンテナを表示または非表示にしたときにシャットダウンまたは再ロードされません。

この問題を解決するには、単純なHTMLラッパーファイルを挿入するだけです。

昔ながらの方法:

メインアプリケーション - > HTMLローダー - > SWFファイル

新しい方法:

メインアプリ - > * iframeローダー* - > HTMLローダー - > SWFファイル

簡単な例:


それからswfContainer.htmlの中でこのようなことをしてください:

ボディ{マージン:0px; }

SWFをロードするのに swfobjectを使用することをお勧めしますが、これは単なる単純なコード例ですが、私はそれをあなたに任せます。


0


あなたは多くの選択肢を持っていましたが、一番良いのは修正されたコードの中のコンテナ式#hiddeflashにフラッシュコードを追加することです。 また、あなたはあなたのオーバーレイzインデックスと位置で遊ぶ必要があります:

/ * 1 * /可視性:隠されています!重要です。

/ * 1 * /位置:絶対値。左:-300%。

/ * 3 * /幅:0;身長:0。

/ * 4 * /可視性:隠されています!重要です。

/ * 5 * /表示:なし


0


FirefoxとChromeで私のために働く唯一の解決策は、Flashコンテナ上のこれらのCSSコードです:

ドキュメントからflashを「削除」したい場合( `display:none`のようなもの)

width:0;
height:0;

ドキュメントから「削除」せずに要素のみを非表示にする場合は、次の手順を実行します。

visibility: hidden

位置情報のヒントはChromeでは機能しません