dev.convexstyle.net

SWFAddress

del.icio.us hatena bookmark

SWFAddress は SWFObject と共に使用し、Flash の各コンテンツの遷移に対して、パーマリンク提供してくれる便利クラス。

html に Javascript を読み込み、Flash に ActionScript クラス(バージョン 1,2,3 に対応)を設定することで、Flash 8 + からサポートされた External Interface class を使用して URL を変更することができる。これによってブラウザの Back、 Forward、Reload に対応し、ブックマークすることも可能。 これで Flash の欠点であったリロードごとの最初からのローディングを回避出来る様になります。Flash の Photography サイトとかだと好きな写真のページにダイレクトにいけたり、EC アプリの情報保持や、LocalSharedObject を応用した形で使用できそう。

結構なクリエーターの方はかなり以前から知っていらっしゃる様で、自分は恥ずかしながら filippasmedhagensund.com を見るまで知らなかったので最初はどうやってんだろうと JS を調べて気づきました。

使い方は下記と通り。(かなり簡単に書いています。)
サンプルファイル(AS 2.0用)
サンプル URL


(1)HTML 側の設定
swfobject.js と swfaddress.js を読み込み、対象の swf を設定します。

<html>
<head>
<title>SwfAddress</title>
<script language="Javascript" type="text/javascript" src="js/swfobject.js"></script>
<script language="Javascript" type="text/javascript" src="js/swfaddress.js"></script>
</head>
<body>
<div id="flashcontent">
flash area
</div>
<script language="Javascript" type="text/javascript">
<!--
	var so = new SWFObject("swfaddress.swf", "movie", "550", "400", "8", "#ffffff");
	so.write("flashcontent");
//-->
</script>
</body>
</html>


(2)Flash 側の設定
SWFAddress.getValue() で変更される URL の一部を取得します。
SWFAddress.setTitle("タイトル") で HTML のタイトルを変更します。
SWFAddress.setValue("URL") で URL を変更します。
SWFAddress.onChange は URL 変更時に呼び出される イベントハンドラです。

stop();

import SWFAddress.as;

SWFAddress.onChange = function():Void {
var address:String = SWFAddress.getValue();
switch(address) {
case "":
gotoAndStop("main");
break;
case "/button1/":
gotoAndStop("button1");
break;
case "/button2/":
gotoAndStop("button2");
break;
case "/button3/":
gotoAndStop("button3");
break;
default:
gotoAndStop("none");
break;
}
}

// ボタンイベント設定
main_mc.onRelease = function():Void {
SWFAddress.setTitle("swfaddress main");
SWFAddress.setValue("");
gotoAndStop("main");
}

page1_mc.onRelease = function():Void {
gotoAndStop("button1");
SWFAddress.setTitle("swfaddress page1");
SWFAddress.setValue("/button1/");
}
page2_mc.onRelease = function():Void {
gotoAndStop("button2");
SWFAddress.setTitle("swfaddress page2");
SWFAddress.setValue("/button2/");
}
page3_mc.onRelease = function():Void {
gotoAndStop("button3");
SWFAddress.setTitle("swfaddress page3");
SWFAddress.setValue("/button3/");
}

【参考リンク】
swfobject
http://blog.deconcept.com/swfobject/

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

この記事関連する書物 from Amazon.co.jp

トラックバック

このエントリーのトラックバックURL:
http://www.convexstyle.net/mt/mt-tb.cgi/37

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)