bigchuにSWFAddress2調べとけやっ!って命令された(ウソ)ので試してみた。
せっかくなのでAS3かつSWFObject2でやってみるよ。
Asual | SWFAddress - Deep linking for Flash and Ajax
http://www.asual.com/swfaddress/
swfobject - Google Code
http://code.google.com/p/swfobject/
SWFAddress2.0の新機能については
Asual | Blog - SWFAddress 2.0
http://www.asual.com/blog/swfaddress/2007/11/16/swfaddress-2.html
日本語訳
[JS]フラッシュにパーマリンクを作成できる -SWFAddress 2 | コリス
http://coliss.com/articles/build-websites/operation/javascript/635.html
さんぷる
SWFAddress Test TOP
http://labs.un-q.net/flashcs3/swfaddress2/
flaファイル含むソースはこちら
http://labs.un-q.net/flashcs3/swfaddress2/swfaddresstest_src.zip
AS3
HTML
swfのパスのあとに new Date().getTime() ってしてるのは開発中にキャッシュしないようにしてるためです。
最近あまり仕事でAS書いてないなー。
bigchuがAS3で仕事ゴリゴリやってるからそのうち何か書いてくれるでしょう。
: AS3を日和 - 酒は血液、呑んだら献血
http://d.hatena.ne.jp/bigchu/20071203/1197349366
せっかくなのでAS3かつSWFObject2でやってみるよ。
Asual | SWFAddress - Deep linking for Flash and Ajax
http://www.asual.com/swfaddress/
swfobject - Google Code
http://code.google.com/p/swfobject/
SWFAddress2.0の新機能については
Asual | Blog - SWFAddress 2.0
http://www.asual.com/blog/swfaddress/2007/11/16/swfaddress-2.html
日本語訳
[JS]フラッシュにパーマリンクを作成できる -SWFAddress 2 | コリス
http://coliss.com/articles/build-websites/operation/javascript/635.html
さんぷる
SWFAddress Test TOP
http://labs.un-q.net/flashcs3/swfaddress2/
flaファイル含むソースはこちら
http://labs.un-q.net/flashcs3/swfaddress2/swfaddresstest_src.zip
AS3
package {
import flash.display.*;
import flash.events.*;
import SWFAddress;
import SWFAddressEvent;
public class SWFAddressTest extends MovieClip {
private var currentPage:*;
public var p1_btn:MovieClip;
public var p2_btn:MovieClip;
function SWFAddressTest() {
p1_btn.buttonMode = true;
p1_btn.addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void {
SWFAddress.setValue("/p1");
});
p2_btn.buttonMode = true;
p2_btn.addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void {
SWFAddress.setValue("/p2");
});
SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleSWFAddress);
}
private function handleSWFAddress(e:SWFAddressEvent):void {
trace("address : " + e.value);
claerPage();
switch (e.value) {
case '/':
SWFAddress.setTitle("SWFAddress Test TOP ");
currentPage = addChild(new pagetop);
break;
case '/p1/':
SWFAddress.setTitle("SWFAddress Test Page1 ");
currentPage = addChild(new page1);
break;
case '/p2/':
SWFAddress.setTitle("SWFAddress Test Page2 ");
currentPage = addChild(new page2);
break;
default:
trace('error page');
SWFAddress.setTitle("SWFAddress Error Page");
currentPage = addChild(new pageerror);
break
}
}
private function claerPage():void {
if (currentPage != null) {
removeChild(currentPage);
}
}
}
}
HTML
swfのパスのあとに new Date().getTime() ってしてるのは開発中にキャッシュしないようにしてるためです。
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>SWFAddress Test</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>
<script type="text/javascript">
swfobject.embedSWF('swfaddresstest.swf?' + new Date().getTime(), 'swf', '300', '300', '9.0.45',
'swfobject/expressinstall.swf', {}, {bgcolor: '#ffffff', menu: 'false'}, {id: 'hoge'});
</script>
</head>
<body>
<div id="swf">
Flash Playerがうんぬんかんぬん
</div>
</body>
</html>
最近あまり仕事でAS書いてないなー。
bigchuがAS3で仕事ゴリゴリやってるからそのうち何か書いてくれるでしょう。
: AS3を日和 - 酒は血液、呑んだら献血
http://d.hatena.ne.jp/bigchu/20071203/1197349366



