SWFAddress

1つのswf内でコンテンツ毎にURLを持てる。
ブラウザのアドレス、タイトルバーを書き換える。
ブラウザの「戻る」が使えるようになる。

フレーム1

/* ActionScript2 */

var init:Init = new Init(this);

Init.as (要: SWFAddress.as, SWFAddressEvent.as)

/* ActionScript2 */

import mx.utils.Delegate;

class Init {

private var _mc:MovieClip;

public function Init(mc:MovieClip){
this._mc = mc;
this.initSWFAddress();
//ボタンイベント(仮)
this._mc.btn_mc.onRelease = Delegate.create(this, function(){
this.sendSWFA();
});
}

//SWFAddressの初期設定
function initSWFAddress() {
SWFAddress.onChange = Delegate.create(this, this.onChangeSWFA);
};

//SWFAddress変化時のイベント受取り
private function onChangeSWFA():Void{
var val = SWFAddress.getValue();
//とりあえず画面上に出力
this._mc.tf.text = val;
//タイトルを変える
SWFAddress.setTitle("test");
}

//SWFAddressに値を送る
private function sendSWFA():Void{
SWFAddress.setValue(String(Math.random()));
}
}

index.html

<!-- HTML -->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>swfa</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="js/swfobject.js"></script>
<script type="text/javascript" src="js/swfaddress.js"></script>
<style type="text/css"></style>
</head>
<body>
<div id="content"></div>
<script type="text/javascript">
// <![CDATA[
var so = new SWFObject('swfa.swf', 'website', '640', '480', '8', '#000000');
so.useExpressInstall('js/expressinstall.swf');
so.addParam('menu', 'false');
so.write('content');
// ]]>
</script>
</body>
</html>

- 参考サイト
Flashのパーマリンク問題をSWFAddressで解決
Asual >> SWFAddress - Deep linking for Flash