Flashの埋め込みと読み取り
埋め込み:
Flash埋め込みページについてmsの歴史的な問題で少し乱れていますが、以下の2編(12)によると、以下の4つの方法が紹介されています.
1.Adobe公式/OE
2.SWFObject静/OO
3.コード最小O
4.embed E単独使用
このうちembedを単独で使用するのは望ましくない(あまりにも古い?肝心なのはfallback contentをサポートしていない)、objectの方法が推奨されている.
読み込み:
以上の4つの方法を許可して、flash urlを読み取ることができる汎用ツール関数を書くには、全面的に考慮しなければなりません.
1.現在の要素はembedであり、srcを直接読めばよい.
2.現在の要素はobject、dataはurl、dataを読み込む
3.現在の要素はobjectであり、nameがmovieのparamであり、そのparamのvalueを読み出す.
4.現在の要素の下にネストされたobjectまたはembedがあり、順次処理されます.
一方ieの下で注意しなければならないのは
1.ieではobject内にネストされたembed要素が取り出せません.
2.動的に生成するflashがドキュメントに挿入されていない場合、ieの下でgetElementsByTagNameですべてのparam要素を取得するには、大文字の「PARAM」パラメータを使用する必要がある.
demo @ google code
flash and accessibility
OEを使用すると、E書き込み方法で代替テキスト(fallback content)を書き込むことができなくなり、ユーザーがflashをインストールしていない場合、空白が直接表示され、情報が欠落します.
Oを採用するとOO firefoxでtabキーの陥没現象が発生し、tabがflashになってから出られなくなり、tabキーを押し続けても反応せず、アクセス性をひどく損なう.
では、JS埋め込み方法をお勧めします.
javascriptスクリプトを使用してflashラベルを出力するには、次の手順に従います.
ie : object
その他embed
JSはflashがインストールされていないと判断して静止画を出力する
JSを無効にするとnoscriptで画像を出力します
JSはflashのインストールの有無を判断する:
from kissy flash .
参考資料:
object @ w3
OBJECT and EMBED syntax | Flash
Bye Bye Embed
object @w3school
Flash Satay: Embedding Flash While Supporting Standards
html 5はちゃんぽんで妥協しました
embed @ html5
object @ html5
Flash埋め込みページについてmsの歴史的な問題で少し乱れていますが、以下の2編(12)によると、以下の4つの方法が紹介されています.
1.Adobe公式/OE
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
width="400" height="300" id="movie1">
<param name="movie" value="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"/>
<embed src="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf" quality="high" width="400" height="300" name="movie"
type="application/x-shockwave-flash"
width="400" height="300"
pluginspage="http://www.macromedia.com/go/getflashplayer"/>
</object>
2.SWFObject静/OO
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
width="400" height="300" id="movie2">
<param name="movie" value="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"/>
<!--[if !IE]>-->
<object type="application/x-shockwave-flash"
data="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"
width="400" height="300">
<!--<![endif]-->
<a href="http://www.adobe.com/go/getflashplayer">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif"
alt="Get Adobe Flash player"/>
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
3.コード最小O
<object type="application/x-shockwave-flash"
data="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"
width="400" height="300"
id="movie3">
<param name="movie" value="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"/>
<a href="go/getflashplayer">
<img src="get_flash_player.gif" alt="Get Adobe Flash player"/>
</a>
</object>
4.embed E単独使用
<embed
id="movie4"
src="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"
quality="high" width="400" height="300" name="movie"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer"/>
このうちembedを単独で使用するのは望ましくない(あまりにも古い?肝心なのはfallback contentをサポートしていない)、objectの方法が推奨されている.
読み込み:
以上の4つの方法を許可して、flash urlを読み取ることができる汎用ツール関数を書くには、全面的に考慮しなければなりません.
1.現在の要素はembedであり、srcを直接読めばよい.
2.現在の要素はobject、dataはurl、dataを読み込む
3.現在の要素はobjectであり、nameがmovieのparamであり、そのparamのvalueを読み出す.
4.現在の要素の下にネストされたobjectまたはembedがあり、順次処理されます.
一方ieの下で注意しなければならないのは
1.ieではobject内にネストされたembed要素が取り出せません.
2.動的に生成するflashがドキュメントに挿入されていない場合、ieの下でgetElementsByTagNameですべてのparam要素を取得するには、大文字の「PARAM」パラメータを使用する必要がある.
demo @ google code
flash and accessibility
OEを使用すると、E書き込み方法で代替テキスト(fallback content)を書き込むことができなくなり、ユーザーがflashをインストールしていない場合、空白が直接表示され、情報が欠落します.
Oを採用するとOO firefoxでtabキーの陥没現象が発生し、tabがflashになってから出られなくなり、tabキーを押し続けても反応せず、アクセス性をひどく損なう.
では、JS埋め込み方法をお勧めします.
javascriptスクリプトを使用してflashラベルを出力するには、次の手順に従います.
ie : object
その他embed
JSはflashがインストールされていないと判断して静止画を出力する
JSを無効にするとnoscriptで画像を出力します
JSはflashのインストールの有無を判断する:
/**
* Flash
* [M, S, R] , undefined
*/
function getFlashVersion() {
var ver, SF = 'ShockwaveFlash';
// for NPAPI see: http://en.wikipedia.org/wiki/NPAPI
if (navigator.plugins && navigator.mimeTypes.length) {
ver = (navigator.plugins['Shockwave Flash'] || 0).description;
}
// for ActiveX see: http://en.wikipedia.org/wiki/ActiveX
else if (window.ActiveXObject) {
try {
ver = new ActiveXObject(SF + '.' + SF)['GetVariable']('$version');
} catch(ex) {
//S.log('getFlashVersion failed via ActiveXObject');
// nothing to do, just return undefined
}
}
// ,ver undefined
if (!ver) return undefined;
// ,ver "Shockwave Flash 10.1 r53" or "WIN 10,1,53,64"
return arrify(ver);
}
from kissy flash .
参考資料:
object @ w3
OBJECT and EMBED syntax | Flash
Bye Bye Embed
object @w3school
Flash Satay: Embedding Flash While Supporting Standards
html 5はちゃんぽんで妥協しました
embed @ html5
object @ html5