flashcontentとは?
|
HTMLにswfファイルを埋め込む際はSWFObjectを使うのが現状ではベストではないかと思います。 バージョン検出も簡単に設定できるし、Flash playerのアップデートを自作のswf内で処理できるという「Express Install」にも対応。他にもいろいろ設定できます。 仕組みは、ある要素の中身をswfを表示するための文字列に置換するというもの。無駄なソースを書かなくていいし、validだしと、いいことづくめな感じです。 9/12追記:関連記事として「お手軽にSWFObjectでswfを埋め込む方法」をエントリしました。 7/19追記:getSWFHTML() を使ってもっと簡単に埋め込む方法が「cellfusion blog | SWFObjectの便利なメソッド」様に書かれています。調整可能なブログパーツの貼付けコードに最適なのではないでしょうか。 SWFObjectはMacromedia Flashのswfを埋め込むためのJavascriptです。このスクリプトで、MacとPCの主要ブラウザのFlashプラグイン判定ができます。埋め込み方法も簡単です。検索エンジン対策(SEO対策)にもなり、validなHTML、XHTML 1.0に使用でき、今後のバージョンにも対応できていると思います。 お知らせ:SWFObjectは以前FlashObjectという名称でしたが、法的な理由で名称変更をしました。詳しくはこちらの記事をお読み下さい。 バージョン1.5での新機能の詳細は、作者の SWFObject1.5 ブログエントリを参考にして下さい。 SWFObjectの使い方は簡単です。swfobject.jsというJavascriptファイルを読み込み、Flashムービーを挿入するために少しのJavascriptを追加するだけです。以下が、Flashムービーを埋め込む為の最もシンプルな使用例です。 HTML内に、Flashムービーを入れる為の要素(ここではdivタグ)を用意します。この要素の内容がFlashムービーに置換されるので、Flashプラグインをインストールしているユーザーにはこの要素の内容は見えません。この機能は代替テキスト表示機能として検索エンジン対策にもなります。var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699"); id - オブジェクトやembedタグのIDとなります。このタグ名はswliveconnect属性を利用する際の名前として利用できます。 version - 必要とするFlashPlayerのバージョン。 「メジャーバージョン.マイナーバージョン.リビジョン」のようにドット区切りの数字で指定することができます。(例: "6.0.65")メジャーバージョンの数字だけを"6"のように指定することもできます。 quality - Flashムービーのクオリティを指定できます。特に指定しない場合、デフォルト値は"high"になります。 xiRedirectUrl - ユーザーに対しExpressInstallによるアップデートを促す時は、リダイレクトに先の代替URLを指定できます。 redirectUrl - 対応するプラグインのバージョンを持っていないユーザーを別ページへ移動させたい時は、このパラメーターにリダイレクトさせたいURLを指定できます。 detectKey - SWFObjectスクリプトで、プラグイン検出をするかしないかを選択する時に参照する変数名です。デフォルトは'detectflash'です。 使用例:プラグイン検出を回避しつつ、Flashムービーを出力させたいときは、ムービーを含むドキュメントのURLに?detectflash=falseを付加します。 (ユーザーの環境に条件を満たすバージョンがあった時に)ページにFlashコンテンツを表示させるスクリプトを出力するように命令します。これはHTML要素の中身を置換することで実行されます。 SWFObjectは、あなたのHTMLページのバックエンドでスムーズに動作します。SWFObjectを使ったページを作る時は、まずは代替コンテンツ(フラッシュなし)で作っておきます。Flashムービーなしで動作するように作っておき、それからFlashムービーに置換するための数行のJavascriptを書き込みます。はじめに記述した代替コンテンツは検索エンジンにかかりますし、Flashプラグインのないユーザーには、この代替コンテンツが見えますので、ページを綺麗に見せることができます。ユーザーにアップグレードを促すかどうかはあなた次第です。代替コンテンツを作り込んでおけば、ユーザーがFlashが見れない場合でも気づかないでしょう。 SWFObjectはFlash Playerのマイナーバージョンや、リビジョンまで検出できます。その指定は該当する数字を設定するだけなのでとてもシンプルです。Flash player v.6.0 r65 (or 6,0,65,0)を検出したい場合、以下のようになります: SWFObjectでは、プラグイン検出を回避することもできます。初めてブラウザを使った時や、何らかの理由でユーザー環境のプラグイン検出が失敗した場合、SWFObjectの検出ができなかった時のために、プラグイン検出回避用のリンク設定ができます。それでもFlashコンテンツはきちんと出力できます。回避用リンクを使うには、Flashコンテンツのあるページへのリンクを貼り、そのurlに付加する形で、'detectflash'変数に対し'false'を設定します。 下がその使用例です: 上記の例はSWFObjectの基本となるシンプルな記述ですが、Flash Playerに含まれるその他のパラメーターを設定したい場合はどうすればいいのでしょうか?SWFObjectはそれらのパラメーターも簡単に設定可能です。下記はその記述例です。 詳しくはmacromedia.comのサイトの設定可能なパラメーターと設定値に付いての解説をご覧下さい。 Flashムービーの読み込み時に変数を渡すといったような、HTMLからFlashにデータを渡す場合には、Flashvarsを使用するのが最も簡単です。通常、"flashvars"というパラメーターを設定し、variable1=value1&variable2=value2&variable3=value3のように、名前と値を渡してやります。SWFObjectはより簡単に、明快な仕様のもと、パラメーターを追加してやることで、お好きな値を渡すことができます。以下がそのサンプルです: 以上の処理で、全ての変数がFlashムービーに渡され、利用できるようになります。変数は_rootタイムライン上の変数として扱われます。 SWFObjectはMacromedia Flash PlayerのExpress Install機能をサポートしています。SWFObjectスクリプトに含まれているactionscriptファイルで、あなたのFlashムービー内にいながらにして、アップグレードを実行することができます。 ユーザーはplayerのアップグレードのために、一旦あなたのサイトを立ち去る必要がなくなります。アップグレードが完了すれば、自動的にサイトのコンテンツにリダイレクトできます。 ExpressInstall機能を使うには、flaファイルにexpressinstall.asをincludeし、ムービーの最初の部分で、ユーザーがアップグレードが必要かどうかを、以下のようにチェックします: //オプションで、下の数行のスクリプトの代わりにExpressInstall.init()を呼び出すことで、自動的にアップデートさせることができます。 (ExpressInstallの判定をする際や、)第1フレームにはコンテンツを置かないようにしてください。また、これらの機能はFlash player 7以上の環境が必要です。 Flashムービーをポップアップウィンドウの中で使う場合や、ExpressInstallによるアップデート後にユーザーを異なるページに移動させたい時には、xiRedirectUrl属性を使って、Flashムービーのあるページの代わりのページにリダイレクトさせることができます。 SWFObjectはMIT Licenseにてリリースされていますので、(基本的には)制限なしでご使用いただけます。 Express Installを利用した標準的なFlashの埋め込み - このページは、あなたのFlash playerが8以下の時、アップグレードしようとします。(バージョン6.0.65以上に対応) さらに興味をお持ちの方は、SWFObjectメーリングリスト(英語のみ)に登録してください。このメーリングリストは、SWFObjectを使っていて出くわした問題や、今後の要望について議論するための場です。 Flash playerのバージョン検出と、HTML書類にFlashムービーを埋め込む方法は、長年議論され続けてきました。このパートではその有名ないくつかの方法と、その問題点を紹介いたします。 Macromediaの標準のFlashの埋め込み方は皆さん既にご存知でしょう。Objectタグと、Embedタグを2段構えで併用する方法です。これは最も有名なFlash埋め込み方法で、Macromedia Flashのソフト上からパブリッシュした際のデフォルトの出力方法となっています。この方法は互換性も高く、多くのブラウザをカバーしています。以下はその使用例です: プラグイン検出がない - プラグイン検出がないので、ユーザーによっては、コンテンツ表示が崩れたり、見れなかったりします。プラグインをインストールしていないIEユーザーには「ActiveXをインストールしますか?」というダイアログボックスが表示されます。これはスパイウェア等が蔓延している現在ではユーザーに恐怖感をあたえまし、Mozillaベースのブラウザでも、似たような問題が起こります。このプラグインのインストール方法は、不親切で、何をインストールしようとしているのかに対する説明も足りません。 IEの仕様の変更により、ユーザーは一度画面をクリックして「activate」させてからでないと、操作できないという問題が出てきました。詳細 validなHTML、XHTMLではない - embedというタグは、どのバージョンのHTML、XHTMLにもありません。しかし、object タグの仕様の違い(或は、サポートしていない、バグの多さ)の為に、保険としてembedタグが使われています。 IEの仕様の変更により、ユーザーは一度画面をクリックして「activate」させてからでないと、操作できないという問題が出てきました。詳細 プラグイン検出ができない - 上記と同様 - プラグイン検出がないので、ユーザーによっては、コンテンツ表示が崩れたり、見れなかったりします。Flash playerはFlashムービーにアクセスした際、たとえどのバージョンであろうとも、無理矢理表示しようとします。もしFlash playerのバージョンが6の時に、7のムービーにアクセスすると、Flash playerは表示しようとし、おかしな結果になることがあるのです。 Some methods of Flash satay don't stream the Flash movie to the player - よってこの方法ではコンテンツswfムービーをロードするためのホルダーとなるswfムービーを用意しないといけません。それによってFlashVarsでパラメーターを渡すようにしているのですが、メンテナンス性も悪く、サーバー上にも余計なファイルが増えるという問題があります。 この方法は、サイトのindexページに小さいFlashムービーを置き、そのFlashムービーでFlash playerの$versionを調べることで、Flashコンテンツのページに飛ばしたり、アップグレードページに移動させたりする方法です。 内部ページではプラグイン検出できない - ユーザーが、内部ページのアドレスを他の人に教えた時には、その人はindexページのプラグイン検出を受けることができません。 IEの仕様の変更により、ユーザーは一度画面をクリックして「activate」させてからでないと、操作できないという問題が出てきました。詳細 Macromediaは、Flash 8用に detection kitという便利なツールを用意しています - しかし、これで十分ではありません。このkitには2つのFlashプラグイン判定の方法が含まれています: Javascript - FlashにはJavascriptによるプラグイン判定があります。しかし、不幸なことに、これはあまり使い勝手がよくありません。JavascriptやVBscript、HTMLが1ページに詰め込まれる形になるためです。このような(SWFObject以前の)Javascriptによる検出&埋め込み方法には多くの欠点があり、Flash/HTML開発者の助けにはなりません。そして(もしこだわるのであれば)これはvalidなXHTML・HTMLでもありません。 この方法はサイトごとによって変わるので、評価がしにくいのですが、今まで見てきたJavascriptによるFlash検出方法のほとんどに、以下のような欠点があるようです: プラグイン判定の信頼度が低い - 現行バージョンのFlash playerでのみ動作することがあるので、新しいバージョンがリリースされた場合、手動でアップデートしないといけません。 余計なコードを書かないといけない - コンテンツを変更したりするのが面倒です。Flashの変更や追加をしたい時に手間がかかります。 A.端的に言えばイエスです。SWFObjectはIEのアップデートによって起こる「Activating Active Content」問題に対応しています。さらなる詳細はこちらをご覧下さい。 Q.Flashコンテンツ表示される前に代替コンテンツの内容が一瞬表示されるのですが?(WindowsのIEでのみ起こる現象) A.はい、それぞれのSWFを用意し、HTML上にそのSWFを入れる為の要素を作り、固有のIDを振ってやるだけで使用できます。 A. このページのフランス語訳ページです。 スウェーデン語、イタリア語、スペイン語、ポーランド語、他に、フィンランド語もあります。その他、このページを他言語に翻訳してくださった方は、このページにリンクさせていただきます。 Q.Flashからパブリッシュする際にSWFObjectで出力してくれるようなテンプレートはありますか? SWFObjectのことは以前から知っていたのですが、訳している中で新しい発見もあり、自分でも喜びながらエントリしてました。 日頃、英語圏の情報量の多さがうらやましく思っていて、つたない翻訳ですが、これからもblogの中でやっていこうと思ってますので、また覗いてやって下さい。 という風に、挿入する箇所のdivタグのIDと、Javascript内で生成するオブジェクトを、埋め込みたい個数分、個別に設定すればOKです。 持っている Flash & ActionScript 関連本の中から、自分的おすすめの読む順番をご紹介。各書籍のレビューは books カテゴリからご覧頂けます。 デザイン方面からFlashデビューして、そのままAS2.0を使うようになった人が、難しいと評判のAS3デビューする時の最初の1冊として、とにかく目を通しておくと良いかと思います。プログラミング経験の少ない方でも、サンプルをじっくり読めば、ゼロからのAS3デビュー可。 ActionScript3.0のリファレンス本。問題とその解決法が1ページぐらいで細分化されているので空いた時間にちょっとずつ読み進められる。とにかく必携。WebでAS3のソースを見て勉強する時の字引としても使う。ただ、時期的に初期の本なので、AS3自体が仕様変更してたりするので正誤表は必読。 ActionScript3.0で数学的アニメーションを作ることがメインテーマなのですが、前半部分でAS3.0の基礎を分かり易く解説されています。せめて前半だけでも読んで、なんとなくAS3.0がイメージできるようにしておくといいかも。もちろん後半の重力, IK, 3D表現等のアニメーション解説も楽しい。 Flexの本だけど、掲載サンプルが自分の手を動かしやすいレベルなので楽しめる。Flex Builder 2 体験版期限の30日以内に読み終えないといけないノルマもあるので、集中して学習できました。AS3は基礎のみで、Flex(MXML)メイン。コンポーネントの用法とか、dataProvider & Repeater コンポーネントの便利さに感動。 900ページ以上ある相当分厚い本。基礎からOOPまでを解説。ほぼ網羅しているので、これを抑えておけばAS3博士になれそう。僕には英単語が難し目で、知らない単語が出てくる割合が大きい。 7/23に発売されたFlash&OOP本。AS2.0版は持っているのだけど、オブジェクト指向の初歩的な解説から入って、後半は僕の理解を超える難度になっていきました。今度こそ理解できるか? AS3言語解説ではなく、デザインパターンの解説本。先に国内のデザパタ書籍を読んでおいて、実際使いどころが分かるぐらいになっていないと分からん気がする。でもそこまで分かっていればわざわざ英語で読む必要もないのかもしれませんね。 スクリプトでアニメーションさせる方法を学べる。プログラムの知識というよりも数学や物理の知識が必要。バネの表現や3D表現など、汎用性の高いテクニックを身に付けられ、個人の表現力をレベルアップするのに最適。参考までに、僕が調べた英単語リスト。2007年4月に、AS3対応版も発売されました。 「Making Things Move!」の世界を突き詰めたい人用のステップアップのための本。行列や物理運動、2D/3D表現。Flashの本ではなく、じっくり読むタイプの本なので、あとまわしにしてもいいかも。 Flash8の新機能を紹介。全10章が独立した構成で、興味のある部分から読めます。フィルタやビットマップ、ビデオの使い方とかを、基礎から順を追って理解していけるので、ゼロからスクリプティングできるようになる。僕はビットマップ関連の作業の際のリファレンスとして常用しています。 上の本でFlash8の基本を身に付けて、それをどう面白い表現に落とし込むかを学べます。深津さんの、試行錯誤・実験しやすいスクリプティング、クラス設計に凄さを感じました。YouTubeやFlickrのAPI、PHPとの連携記事も。 ここまでで表現力が付き、テンションが上がるので、その勢いで難解なオブジェクト指向に挑戦。プログラム経験のない人がいきなり英語のOOP本を読むのは厳しい。この本で継承とかインターフェースとかポリモーフィズムとかの用語を理解しておくといいかも。 Flashの本ではありませんが、OOPの概念を気軽に読めるボリュームで解説してくれます。英語と日本語のOOP用語の対応を図るためにも「Object-oriented Actionscript for Flash 8」と併読するのがおすすめ。なんとなく読んでおくだけでも結構違うのでは。 前半はOOPの利便性や基本の紹介。デザインパターンやMVCの理解。13章からグッと難しくなって大変。Flash8対応。 上の本よりもさらにOOPプログラマ向け。同じOOP本ということでやや重複しており、こちらはMX2004時代の本なので見送ってもいいかも。分かりやすい英語で良著。この本のAS3版が出たら間違いなく買い。 |
[ 3] trick7.com blog: SWFObjectのドキュメントを日本語に翻訳してみたよ
[引用サイト] http://www.trick7.com/blog/2006/06/15-135235.php
