SWFObjectを使用すると、HTMLにFlashを挿入する際のブラウザ互換性の問題を完全に解決できます。

SWFObjectを使用すると、HTMLにFlashを挿入する際のブラウザ互換性の問題を完全に解決できます。

一緒に学びましょう

1. 伝統的な方法


コードをコピー
コードは次のとおりです。

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"codebase="<a href="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0">http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0</a>" width="550" height="400" id="Untitled-1" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="mymovie.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="mymovie.swf" quality="high" bgcolor="#ffffff" width="550" height="400"name="mymovie" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="<a href="http://www.macromedia.com/go/getflashplayer">http://www.macromedia.com/go/getflashplayer</a>" />
</オブジェクト>

この方法では、オブジェクト タグと埋め込みタグを使用して埋め込みます。注意して見ると、オブジェクトの多くのパラメータと埋め込み内の多くの属性が繰り返されていることがわかります。なぜこのようなことが行われるのでしょうか。ブラウザの互換性のため、一部のブラウザはオブジェクトをサポートし、一部のブラウザは埋め込みをサポートしています。そのため、Flash パラメータを変更するときは、両方の場所を変更する必要があります。

この方法は Macromedia の公式方法であり、Flash の機能性が最大限に保証され、互換性の問題もありません。しかし、今のところうまく動作しません。互換性のために埋め込まれた埋め込みタグが W3C 仕様に準拠していないため、検証に失敗します。もちろん、標準を気にしないかどうかは別の問題です。

さまざまな理由により、Microsoft は SP2 以降、IE の ActiveX の使用モードを制限しました。つまり、ページ上の ActiveX に仮想ボックスがあり、ユーザーは正常に操作するために 1 回クリックする必要があります。 Flash は ActiveX として Web ページに埋め込まれているため、これも関係します。この問題は、JS を介して Flash を埋め込むことによってのみ解決できます。

Flash バージョンの検出はありません。ブラウザの Flash プラグイン バージョンが十分でない場合、swf ファイルが正常に表示されないか、ActiveX のインストール確認ボックスがポップアップ表示されることがあります。このボックスは多くのユーザーにとって非常に恐ろしいものです。

2. JSで埋め込む方法

JS で埋め込む場合、さまざまな埋め込み方法があり、適切なものもあれば、そうでないものもあります。直接書き込むために document.write を使用する人もいます。正直、この方法はあまり良くありません。ハック要素が多すぎて、検証のための検証のような気がします。また、JS の利点も反映されていません。良い JS 埋め込みスクリプトは、Flash が持つべき機能を確保しながら、JS の利点を最大限に発揮できるものでなければならないと思います。バージョン検出機能があり、アクセシビリティの問題 (つまり、ユーザーが Flash コンテンツを参照できない場合や JS を無効にできない場合の対処方法) をうまく解決でき、再利用が容易である必要があります。

ここで説明するのは、SWFObject ソリューションです。

「SWFObject」は、Javascript を使用してフラッシュを挿入します。これには多くの利点があります。コードは簡潔で、IE6 では「コントロールをアクティブにするには、ここをクリックしてください」というプロンプトが表示されず、W3C 検証に合格できます。フラッシュに「オブジェクト」を挿入する従来の方法とは異なります。

SWFObject の新しい 2.x バージョンでは、最も単純な呼び出しに必要なのは 1 つの文だけであり、ページが読み込まれるのを待つ必要がないため、この文をページ上のどこにでも記述できます。以前のバージョンよりもずっとシンプルです。以下に、シンプルでよく使用される呼び出し方法をいくつか示します。

1. フラッシュを挿入したいときにいつでも使用できる、最もシンプルで基本的な定番の文章。


コードをコピー
コードは次のとおりです。

<div id="swfid"></div>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
swfobject.embedSWF("test.swf", "swfid", "300", "120", "9.0.0", "expressInstall.swf");
</スクリプト>

注: SWF ファイルを挿入するには、embedSWF メソッドを呼び出します。パラメータは次のとおりです: @swf ファイルのアドレス。@swf ファイルを読み込むために使用されるコンテナー (div など) の ID。@フラッシュの幅。@フラッシュの高さ (もちろん、ここでの幅と高さは 100% などのパーセンテージで表すことができます)。@フラッシュを正常に再生するために必要な最小バージョン。@バージョンが要件より低い場合は、swf ファイルを実行します。ここでは、このフラッシュを使用して、最新バージョンのフラッシュ プラグインの公式ダウンロードにジャンプします。 (このパラメータは省略できます) 同じページ上の異なる場所に複数のフラッシュを挿入する場合は、上記のステートメントを繰り返し、異なるコンテナ ID を使用します。

2. パラメータ、変数、プロパティをswfファイルに渡すメソッドの呼び出し


コードをコピー
コードは次のとおりです。

<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
//1. Jsonを使用して変数、パラメータ、プロパティを初期化する
var フラッシュ変数 = {
名前1: 「こんにちは」
名前2: "世界",
名前3: "foobar"
};
var パラメータ = {
メニュー: "false"
};
var 属性 = {
id: "dynamicContent2"、
名前: "dynamicContent2"
};
swfobject.embedSWF("test6_flashvars.swf", "content2", "300", "120", "6.0.0","expressInstall.swf", flashvars, params, attribute); </p> <p>//2. 従来の初期化設定、効果は同じです
var フラッシュ変数 = {};
flashvars.name1 = "こんにちは";
flashvars.name2 = "ワールド";
flashvars.name3 = "foobar";
var パラメータ = {};
パラメータ.menu = "false";
var 属性 = {};
属性ID = "dynamicContent3";
属性名 = "dynamicContent3";
swfobject.embedSWF("test6_flashvars.swf", "content3", "300", "120", "6.0.0", "expressInstall.swf", flashvars, params, attribute);
//3. 最後に、1文だけで簡潔かつ力強く、先延ばしせずに直接書きます。
swfobject.embedSWF("test6_flashvars.swf", "content5", "300", "120", "6.0.0","expressInstall.swf", {name1:"hello",name2:"world",name3:"foobar"}, {menu:"false"}, {id:"dynamicContent5",name:"dynamicContent5"});
</スクリプト>

SWFObject 2.0 公式ドキュメント (中国語) https://www.jb51.net/books/175630.html

github: https://github.com/swfobject/swfobject .

<<:  CSSの4種類の配置の違いの詳細な説明

>>:  Javascriptでオブザーバーモードを実装する方法を教えます

推薦する

HTMLテーブルで、各セルに異なる色と幅を設定します

設定が有効にならない場合が多いため、幅や高さなどをテーブル内で直接設定しないことをお勧めします。スタ...

Vueはシンプルな虫眼鏡効果を実装します

この記事では、参考までに、簡単な虫眼鏡効果を実現するためのVueの具体的なコードを紹介します。具体的...

CSS 命名: BEM、スコープ付き CSS、CSS モジュール、CSS-in-JS の説明

CSS の適用範囲はグローバルです。プロジェクトがどんどん大きくなり、参加する人が増えるにつれて、命...

Linux SecureCRT の文字化けの解決方法

SecureCRT が文字化けした文字を表示する状況を見てみましょう。例えば: ではリセットしてみま...

React スキャフォールディングの構築方法を学ぶ

1. フロントエンドエンジニアリングの複雑さいくつかの小さなデモ プログラムを開発するだけであれば、...

入力テキストボックスの長さをコンテンツに応じて変更する方法

初め:コードをコピーコードは次のとおりです。 <input type="text&q...

Linux での Redis の永続性、マスター スレーブ同期、Sentinel の詳細な説明

1.0 Redis の永続性Redis はメモリ内データベースです。サーバー プロセスが終了すると、...

Linux で Bash 環境変数を設定する方法

Shell は C 言語で書かれたプログラムであり、ユーザーが Linux を使用するための橋渡しと...

Docker Swarm 外部検証ロードバランシングが機能しない場合の解決策

問題の説明Centos7 をローカルにインストールして 3 つの仮想マシンを作成し、Swarm クラ...

Vueはテーブルページング機能を実装します

この記事では、テーブルページング機能を実現するためのVueの具体的なコードを例として紹介します。具体...

Node.js で Bash スクリプトを書くための究極のソリューション

目次序文zxライブラリ$`コマンド` CD()フェッチ()質問()寝る()スローしない()チョークフ...

MySQL における楽観的ロック、悲観的ロック、MVCC の包括的な分析

序文データベースの実際の使用では、データの書き込みや読み取りを同時に行わないことが必要な状況によく遭...

MySQL 5.7.17 のインストールと設定のグラフィックチュートリアル

ブロガーはこう述べています。「私は『史上最も簡単な MySQL チュートリアル』という一連のブログ記...

CSS を使用して画像の下の空白を数ピクセル消去する方法の詳細な説明

最近、友人が私に質問をしました。ページをレイアウトすると、画像の下に 1 ~ 2 ピクセルの空白があ...

MySQL 5.7.17 のインストールと設定方法のグラフィックチュートリアル (Win7 の場合)

Windows 7 で MySQL 5.7.17 をインストールする方法についてのグラフィック チ...