SWFAddressとは、SWFObject と共に、Flash の各コンテンツの遷移に対してパーマリンク提供する便利なオープンソースのライブラリです。※SWFObjectについては、SWFObject: Flash/FlexをWeb ページに貼りつけるのに便利なJavaScriptライブラリを参考できます。

パーマリンクはFlashの問題の一つ、Flash内部のコンテンツにブックマークが出来ないということです(Flex3からHistoryManager/BrowserManagerというクラスを使えば機能を実現することができる)。SWFAddressを使用すれば、Javascriptを使ってページを更新することなくURLを変更することで SWF内にユニークなURLを設定できるというとても簡単でその問題を解決できます。

SWFAddressはActionScriptのライブラリと、HTMLページ用のJavaScriptファイルで構成されています。SWFAddressのActionScriptを利用して、シーン別にユニークなURLを指定するとブラウザのURLアンカー指定部分が変化されます。もちろん、利用するにはSWFObject.jsも必要になります。

・2.0での主な変更点は、以下の通りです。

  • 複数のフラッシュとAjaxに対応。
  • ActionScriptとJavaScriptのイベントに対応。
  • 新機能:SWFAddressEvent クラス。
  • 新機能:SEOを少し。
  • Flash CS3のサポート。
  • Flash Player 7のサポート。
  • SWFObject 2.0のサポート。
  • 新モード:デフォルトで末尾にスラッシュを追加。
  • 新リンク方法:ウインドウとポップアップ。
  • 新方式:ブラウザの履歴の扱い。
  • トラッカー ファンクション。
  • クエリのパラメータでスクリプトの構成を設定。
  • swfaddress.html はオプションで、デフォルトで使用されない。
  • 改善されたたくさんの新しいフラッシュベースのサンプル。
  • ActionScript 3と JavaScriptのためのAPIドキュメンテーション。

・対応ブラウザSWFAddressは以下のブラウザに対応しています。

  • Iinternet Explorer6+
  • Firefox 1+
  • Safari 1.3+
  • Opera 9.02+
  • Camino 1+
  • Mozilla 1.8+
  • Netscape 8+

・ライブラリの読み込みとオプション

SWFAddressはjavascriptのライブラリの読み込み時にオプションをsrc属性のurl中にクエリーとして渡します。オプションとして使用できる値は以下の4つがあります。

  • history (bool値) デフォルトはtrue
  • html (bool値) デフォルトはfalse
  • strict (bool値) デフォルトはtrue
  • tracker (文字列) デフォルトは_trackDefault

それは例の一つです。

  1. <script href="swfaddress.js?history=1&html=1&strict=0&tracker=customTracker" type="text/javascript"></script>
使用例:
・ヘッダー部分 ライブラリの読み込みと、タグの書き出しサンプル
  1. <script src="js/swfobject.js" type="text/javascript"></script>
  2. <script src="js/swfaddress.js?strict=0" type="text/javascript"></script>
  3. <script type="text/javascript">
  4.      var flashvars = {};
  5.      var params = {
  6.           menu: "true",
  7.           scale: "noScale",
  8.           allowScriptAccess: "sameDomain"
  9.       };
  10.       var attr = {
  11.            id: "altContent",
  12.            name:"altContent"
  13.       }
  14.       swfobject.embedSWF("SWFAddress.swf", "altContent", "100%", "100%", "9.0.0", "expressInstall.swf", flashvars, params, attr);
  15. </script>

・Body部分

  1. <ul>
  2. <li><a href="" onclick="SWFAddress.setValue('ClickA'); this.blur(); return false;" rel="ClickA">ClcikA</a> </li>
  3. <li><a href="" onclick="SWFAddress.setValue('ClickB'); this.blur(); return false;" rel="ClickB">ClcikB</a></li>
  4. </ul>
  5. <div id="altContent">
  6. <h1>SWFAddress</h1>   Alternative content   <a href="http://www.adobe.com/go/getflashplayer"><img
  7.       src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a>
  8. </div>

・as側の記述もjavascript側とほとんど同じように記述できる。

  1. <?xml version="1.0"?>
  2.   <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init(event)">
  3.       <mx:Script>
  4.       <![CDATA[
  5.       import mx.events.FlexEvent;
  6.       import com.asual.swfaddress.SWFAddress;
  7.       import com.asual.swfaddress.SWFAddressEvent;
  8.       import mx.controls.Alert;
  9.       import mx.events.ItemClickEvent;   public function init(event:FlexEvent):void{     SWFAddress.addEventListener(SWFAddressEvent.CHANGE, swfAddressChangeEvent);
  10.       }   public function swfAddressChangeEvent(event:SWFAddressEvent):void {
  11.          var path:String = event.path;
  12.          Alert.show(path, "path");
  13.       }   public function itemClickHandler(event:ItemClickEvent):void {
  14.           var index:String = String(event.item);
  15.           SWFAddress.setValue(index);
  16.       }
  17.       ]]>
  18.       </mx:Script>
  19.       <mx:ButtonBar itemClick="itemClickHandler(event);">
  20.      <mx:dataProvider>
  21.         <mx:String>Menu_1</mx:String>
  22.         <mx:String>Menu_2</mx:String>
  23.         <mx:String>Menu_3</mx:String>
  24.      </mx:dataProvider>
  25.       </mx:ButtonBar>
  26.    </mx:Application>

[関連リンク]

http://www.asual.com/swfaddress/

公式サイト

メインコンテンツEND ■
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Posted on Tuesday, 2nd June 2009 by admin

Tags: , , , , ,
Posted in ActionScript, Ajax/JavaScript, Flash Project | Comments (0) | 3,573 views

Leave a Reply