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でオブザーバーモードを実装する方法を教えます

推薦する

ECMAScript6 におけるマップマッピングの基本概念と一般的な方法

目次マッピングとは何かオブジェクトとマップの違いマップの共通メソッド宣言と初期化割り当てセットキー値...

レスポンシブ原則のソースコード分析のVue解釈

目次初期化初期化状態()初期化プロパティ()初期化データ()観察する()オブザーバーリアクティブを定...

MySQL で行を列に変換したり、列を行に変換したりする詳細な例

mysql 行から列へ、列から行へ難しい文章ではないので、詳しく説明はしません。文章を読むときは、一...

CentOS 6.2 に MySQL 5.7.28 をインストールするチュートリアル (mysql ノート)

1. 環境整備1.MySQLインストールパス: /usr/local 2. CentOS 6.2 ...

複数人チャットルームを実現する js コード

この記事の例では、多人数チャットルームを実装するためのjsコードの具体的なコードを参考までに共有して...

DockerHubを自分で構築する方法

先ほど使用したDocker HubはDockerによって提供されています。独自のDockerを構築す...

CSS クロスブラウザ スタイルのバグのデバッグについて

まず最初に、適切なブラウザを選択します。私が Chrome を選択したのは、その強力なデバッグ ツー...

Linux 上でプライベート Git サーバーを構築するための詳細なチュートリアル

1. サーバーのセットアップリモート リポジトリは実際にはローカル リポジトリと何ら変わりなく、純粋...

js で下線とキャメルケースの変換を実装する (複数の方法)

目次適用シナリオ:方法 1: 正規表現 (推奨)方法2: 配列のreduceメソッドを使用する方法3...

Dockerイメージを構築する2つの方法

目次既存のイメージからイメージを更新します。イメージを最初から構築する: Docker イメージ リ...

CSS における px、rem、em、vh、vw の違いを簡単に分析します

絶対長さピクセルpx はピクセル値であり、メートルやセンチメートルのような固定の長さです。相対的な長...

ミニプログラムでマインドマップを描く方法

目次マインドマップとは何ですか? F6で描く方法アリペイ微信要約するマインドマップとは何ですか?マイ...

HTMLの基本構造を包括的に理解する

HTML入門ハイパーテキスト マークアップ言語: ハイパーテキスト マークアップ言語ハイパーテキスト...

MySQLのロック機構に関する最も包括的な説明

目次序文グローバルロック完全なデータベース論理バックアップFTWRL と set global re...

Vue でインデックスをキー属性値として使用することが推奨されないのはなぜですか?

目次序文キーの役割差分アルゴリズムにおけるキーの役割ヘッドノードを同期するテールノードを同期する新し...