Hatena::Groupactionscript

ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記

2008年08月16日 土曜日

SharedObjectを利用する

| 02:23 | SharedObjectを利用する - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク - SharedObjectを利用する - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 SharedObjectを利用する - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 のブックマークコメント

なぜか、SharedObjectを利用する話。

FlashJavaScriptは、仲良くできるんだねぇ。

package{
	import flash.display.*;
	import flash.external.*;
	import flash.net.*;

	public class FlashShare extends Sprite{	
		public var share:SharedObject;		

		public function FlashShare(){
			// JavaScriptから呼び出せるように登録する
			ExternalInterface.addCallback("setValue",setValue);
			ExternalInterface.addCallback("getValue",getValue);
			ExternalInterface.addCallback("clearValue",clearValue);

			// SharedObjectを用意する
			share = SharedObject.getLocal("application-name");
		}

		public function setValue(str:String):void{
			share.data["edit"] = str;
			share.flush();
		}

		public function getValue():String {
			return share.data.edit;
		}

		public function clearValue():void {
			share.clear();
		}
	}

}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<title>sample</title>
<script>
function test(){
	var flash = document.getElementById("flashy");
	if(flash.getValue()){
		alert(flash.getValue());
	}else{
		flash.setValue("テストだよ");
	}
};
</script>
</head>
<body bgcolor="#ffffff">

<script language="JavaScript">
var tags = '<object id="flashy" name="flashy" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" data="FlashShare.swf" width="1" height="1"><param name="movie" value="FlashShare.swf" /></object>';
if (! navigator.userAgent.toString().match(/MSIE/)) {
  tags = tags.replace(/codebase=".*?"/, '').replace(/classid=".*?"/, 'type="application/x-shockwave-flash"');
}
document.write(tags);
</script>



<a href="#" onclick="test()">test</a>

</body>
</html>