<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>PUBLICROOTS | mtFlash</title>
<link>http://www.publicroots.com/fmt/</link>
<description></description>
<language>ja</language>
<copyright>Copyright 2010</copyright>
<lastBuildDate>Fri, 13 Aug 2010 19:37:51 +0900</lastBuildDate>
<generator>http://www.movabletype.org/?v=3.151-ja</generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs> 

<item>
<title>YouTube Player を Flash に埋め込む</title>
<description><![CDATA[<p>YouTube のプレイヤー SWF（http://www.youtube.com/apiplayer?version=3）をロードすればできるようです。<br />
ただし、Flash Player 10 以上。</p>

<p>フルスクリーンで埋め込んだデモ<br />
<a href="http://www.publicroots.com/test/youtube/" target="_blank">http://www.publicroots.com/test/youtube/</a></p>

<pre>
package <br />
{<br />
import flash.display.DisplayObject;<br />
import flash.display.Loader;<br />
import flash.display.LoaderInfo;<br />
import flash.display.MovieClip;<br />
import flash.events.Event;<br />
import flash.net.URLRequest;<br />
import flash.system.Security;<br />

<p>public class YouTubeApi extends MovieClip<br />
{<br />
private var _youtubePlayer:Object;</p>

<p>public function YouTubeApi()<br />
{<br />
Security.allowDomain("*");</p>

<p>var loader:Loader = new Loader();<br />
loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);<br />
loader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3"));<br />
}<br />
private function initHandler(event:Event):void<br />
{<br />
_youtubePlayer = Loader(LoaderInfo(event.currentTarget).loader).content as Object;<br />
addChild(_youtubePlayer as DisplayObject);<br />
_youtubePlayer.addEventListener("onReady", onReadyHandler);<br />
_youtubePlayer.addEventListener("onError", onErrorHandler);<br />
_youtubePlayer.addEventListener("onStateChange", onStateChangeHandler);<br />
_youtubePlayer.addEventListener("onPlaybackQualityChange", onPlaybackQualityChangeHandler);</p>

<p>}</p>

<p>private function onReadyHandler(event:Event):void<br />
{<br />
trace("ready", Object(event).data);<br />
_youtubePlayer.setSize(500, 375);<br />
//リサイズ設定<br />
addEventListener(Event.ENTER_FRAME, onEnterFrame);</p>

<p>// OK GoのPVをロードして自動再生<br />
_youtubePlayer.loadVideoById("V2fpgpanZAw");<br />
}<br />
private function onErrorHandler(event:Event):void<br />
{<br />
// error 150 となる場合は、指定した映像が「埋め込み拒否」されている。（どうしようもない）<br />
trace("error", Object(event).data);<br />
}<br />
private function onStateChangeHandler(event:Event):void<br />
{<br />
// state -1 未スタート(SWFが読み込まれたときは -1 の onStateChange イベントが発行される)<br />
// state 0 終了<br />
// state 1 再生中<br />
// state 2 一時停止<br />
// state 3 バッファリング中<br />
// state 5 停止(SWF が読み込まれ、キューに追加されて、再生可能になったら5の onStateChange イベントが発行される)<br />
trace("state", Object(event).data);<br />
}<br />
private function onPlaybackQualityChangeHandler(event:Event):void<br />
{<br />
// クオリティを変更した場合<br />
trace("quality", Object(event).data);<br />
}<br />
private function onEnterFrame(event:Event):void<br />
{<br />
var ww:Number = Math.floor(stage.stageWidth);<br />
var hh:Number = Math.floor(stage.stageHeight);</p>

<p>var scale_w:Number = stage.stageWidth/500;<br />
var scale_h:Number = stage.stageHeight/375;<br />
var scale:Number = Math.max(scale_w,scale_h);//大きい比率を検出<br />
_youtubePlayer.setSize(500*scale, 375*scale);</p>

<p>_youtubePlayer.x = -(ww - 500)/2;<br />
_youtubePlayer.y = -(hh - 375)/2;<br />
}<br />
}<br />
}<br />
</pre></p>

<p>参考サイトはこちら<br />
<a href="http://feb19.jp/blog/archives/000182.php" target="_blank">http://feb19.jp/blog/archives/000182.php</a></p>]]></description>
<link>http://www.publicroots.com/fmt/archives/000324.html</link>
<guid>http://www.publicroots.com/fmt/archives/000324.html</guid>
<category>AS3</category>
<pubDate>Fri, 13 Aug 2010 19:37:51 +0900</pubDate>
</item>
<item>
<title>FlickrとFlashの連動 - Flickr API</title>
<description><![CDATA[<p>ドキュメントクラス（MainStage.as）は省略。flaファイルのルートにphotoMCという名前のMCを配置します。必要ならローディングMC（loadingimg）も配置。</p>

<p><br />
アクセス先<br />
<b>XML : </b><br />
<em>http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=" + api_key + "&user_id=" + user_id +"&privacy_filter=1"</em><br />
<b>画像URL : </b><br />
<em>http://farm" + farm_id[i] + ".static.flickr.com/" + server_id[i] + "/" + photo_id[i] + "_" + secret[i] + ".jpg"</em><br />
サイズ指定がある時<br />
<em>http://farm" + farm_id[i] + ".static.flickr.com/" + server_id[i] + "/" + photo_id[i] + "_" + secret[i] + "_" + size + ".jpg"</em></p>

<p><br />
今回は使ってませんが、サイズの種類は下記です。<br />
s	small square 75x75<br />
t	thumbnail, 100 on longest side<br />
m	small, 240 on longest side<br />
-	medium, 500 on longest side<br />
b	large, 1024 on longest side (only exists for very large original images)<br />
o	original image, either a jpg, gif or png, depending on source format</p>

<p>詳しくは、Flickr APIのドキュメントを確認ください。<br />
<a href="http://www.flickr.com/services/api/" target="_blank">http://www.flickr.com/services/api/</a></p>

<p><br />
Flickr APIを使ってデモを作ってみました。<br />
2010.08.09<br />
今流行の3D風にしてみました。3D眼鏡でみると何となくそう見えます。<br />
<b><em>3D Flickr Viewer</em></b><br />
<em><a href="http://www.publicroots.com/test/flickr/" target="_blank">http://www.publicroots.com/test/flickr/</a></em></p>

<p>2010.08.12<br />
ドットで表現してみました。<br />
<b><em>Dot Flickr Viewer</em></b><br />
<em><a href="http://www.publicroots.com/test/flickr/index2.html" target="_blank">http://www.publicroots.com/test/flickr/index2.html</a></em></p>

<p><br />
<pre><br />
package{<br />
import flash.media.*;<br />
import flash.net.*;<br />
import flash.display.*;<br />
import flash.events.*;<br />
import flash.xml.*;<br />
import flash.net.URLRequest;<br />
import flash.net.URLLoader;<br />
import flash.net.URLLoaderDataFormat;<br />
import flash.events.Event;<br />
import flash.events.IOErrorEvent;<br />
import flash.display.Loader;<br />
import flash.display.LoaderInfo;<br />
import flash.utils.Timer;<br />
import flash.events.TimerEvent;<br />
import flash.system.Security;</p>

<p>public class Flickrapi<br />
{<br />
private var _mainstage:MainStage;<br />
	<br />
//NSID、api_keyを格納<br />
private var user_id:String = "〜NSID〜";<br />
private var api_key:String = "〜api_key〜"</p>

<p>private var myXML:XML;<br />
private var myLoader:Loader;<br />
	<br />
//リクエスト用のURLを生成します<br />
private var url:String = "http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=" + api_key + "&user_id=" + user_id +"&privacy_filter=1";<br />
private var myURLReq:URLRequest;<br />
private var myXMLLoader:URLLoader;<br />
	<br />
private var taotalimg:Number;<br />
private var taotalmaxxx:Number = 100;<br />
		<br />
private var photoURL:Array = new Array();<br />
private var photo_id:Array = new Array();<br />
private var farm_id:Array = new Array();<br />
private var server_id:Array = new Array();<br />
private var secret:Array = new Array();</p>

<p>private var loadcount:Number = 1;<br />
private var myCont:MovieClip;<br />
//ループ時間<br />
private var timer:Timer;<br />
private var myImage:Bitmap;<br />
//サイズ<br />
private var size:String = "b";</p>

<p>public function Flickrapi(_ms:MainStage):void<br />
{<br />
trace("[ FlickrAPICls ]");<br />
_mainstage = _ms;<br />
myCont = _mainstage.photoMC;</p>

<p>//クロスドメインポリシーファイルのロード<br />
Security.loadPolicyFile("http://farm1.static.flickr.com/crossdomain.xml");<br />
Security.loadPolicyFile("http://farm2.static.flickr.com/crossdomain.xml");<br />
Security.loadPolicyFile("http://farm3.static.flickr.com/crossdomain.xml");<br />
Security.loadPolicyFile("http://farm4.static.flickr.com/crossdomain.xml");<br />
Security.loadPolicyFile("http://farm5.static.flickr.com/crossdomain.xml");</p>

<p>_mainstage.loadingimg.visible = true;<br />
TopLoading();<br />
_mainstage.stage.addEventListener(Event.RESIZE, TopLoadingResize);</p>

<p>//読込みスタート<br />
FlickrAPIStart();<br />
}</p>

<p>//リサイズで中央表示<br />
//TopLoadingResize<br />
private function TopLoadingResize( event:Event ):void {<br />
TopLoading();<br />
}<br />
public function TopLoading():void {<br />
//loadingimg<br />
_mainstage.loadingimg.x = _mainstage.stage.stageWidth/2;<br />
_mainstage.loadingimg.y = _mainstage.stage.stageHeight/2;<br />
//myCont<br />
myCont.x = _mainstage.stage.stageWidth/2 - myCont.width/2;<br />
myCont.y = _mainstage.stage.stageHeight/2 - myCont.height/2;<br />
}<br />
		<br />
private function FlickrAPIStart():void<br />
{<br />
myURLReq = new URLRequest(url);<br />
//リクエスト発行します<br />
myXMLLoader = new URLLoader();<br />
myXMLLoader.dataFormat = URLLoaderDataFormat.TEXT;<br />
myXMLLoader.addEventListener(Event.COMPLETE,setPhotoXML);<br />
myXMLLoader.addEventListener(IOErrorEvent.IO_ERROR,isError);<br />
myXMLLoader.load(myURLReq);<br />
}<br />
								 <br />
private function setPhotoXML(e:Event):void{<br />
//読み込んだ後の処理を記述<br />
myXML = new XML(myXMLLoader.data);<br />
	<br />
taotalimg = myXML.photos.@total;<br />
trace("投稿写真の枚数 = "+taotalimg);<br />
	<br />
//配列にURL格納<br />
for(var i:int = 1 ; i <= taotalmaxxx; i++){<br />
photo_id[i] = myXML.photos.photo[(i-1)].@id;<br />
farm_id[i] = myXML.photos.photo[(i-1)].@farm;<br />
server_id[i] = myXML.photos.photo[(i-1)].@server;<br />
secret[i] =  myXML.photos.photo[(i-1)].@secret;</p>

<p>photoURL[i] = "http://farm" + farm_id[i] + ".static.flickr.com/" + server_id[i] + "/" + photo_id[i] + "_" + secret[i] + ".jpg";<br />
//trace("photoURL[ "+i+" ] = "+photoURL[i]);<br />
}<br />
//写真のロード<br />
PhotoLoad(loadcount);<br />
}</p>

<p>private function PhotoLoad(_lun:Number):void<br />
{<br />
_mainstage.loadingimg.visible = true;</p>

<p>var photoURLreq:URLRequest = new URLRequest(photoURL[_lun]);<br />
myLoader = new Loader();<br />
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,setImage);<br />
myLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,isError);<br />
myLoader.load(photoURLreq);<br />
}<br />
private function setImage(e:Event){<br />
myCont.alpha = 0;<br />
myImage = e.target.content;<br />
var loadedImage:Bitmap = Bitmap(myImage);<br />
myCont.addChild(myImage);<br />
//タイマー<br />
timer = new Timer(4000,1);<br />
timer.addEventListener(TimerEvent.TIMER, PhotoChangeFunc);<br />
timer.start();<br />
	<br />
_mainstage.loadingimg.visible = false;<br />
	<br />
Tweener.addTween( myCont, { salpha:1, time:1, transition:"easeInQuart", onComplete:PhotoAlphaEnd} );<br />
}<br />
private function PhotoAlphaEnd():void<br />
{<br />
Tweener.removeTweens( myCont );<br />
}</p>

<p>private function PhotoChangeFunc( event:TimerEvent ):void<br />
{<br />
timer.removeEventListener(TimerEvent.TIMER, PhotoChangeFunc);			<br />
Tweener.addTween( myCont, { alpha:0, time:1, transition:"easeInQuart", onComplete:PhotoEnd} );<br />
}<br />
private function PhotoEnd():void<br />
{<br />
Tweener.removeTweens( myCont );<br />
myCont.removeChild(myImage);<br />
		<br />
//ループ実行<br />
if(loadcount < taotalmaxxx){<br />
loadcount++;<br />
}else{<br />
loadcount = 1;<br />
}<br />
PhotoLoad(loadcount);<br />
}<br />
	<br />
private function isError(e:IOErrorEvent):void{<br />
trace("failed to Load photos info");<br />
}<br />
}<br />
}<br />
</pre></p>]]></description>
<link>http://www.publicroots.com/fmt/archives/000321.html</link>
<guid>http://www.publicroots.com/fmt/archives/000321.html</guid>
<category>AS3</category>
<pubDate>Wed, 04 Aug 2010 20:06:09 +0900</pubDate>
</item>
<item>
<title>RA DIOHEA_D / HOU SE OF_C ARDS </title>
<description><![CDATA[<p><a href="http://code.google.com/intl/ja-JP/creative/radiohead/" target="_blank"><img src="http://www.publicroots.com/fmt/archives/radiohead_pv.jpg" alt="A DIOHEA_D / HOU SE OF_C ARDS" width="664" height="400" border="0" /></a></p>

<p><a href="http://www.youtube.com/watch?v=8nTFjVm9sTQ" target="_blank">http://www.youtube.com/watch?v=8nTFjVm9sTQ</a></p>

<p><em>The Making-of "House of Cards"</em><br />
<a href="http://www.youtube.com/watch?v=cyQoTGdQywY" target="_blank">http://www.youtube.com/watch?v=cyQoTGdQywY</a></p>

<p><em>RA DIOHEA_D / HOU SE OF_C ARDS - Google Code</em><br />
<a href="http://code.google.com/intl/ja-JP/creative/radiohead/" target="_blank">http://code.google.com/intl/ja-JP/creative/radiohead/</a><br />
かなり前ですが、RA DIOHEA_D / HOU SE OF_C ARDSのPVでかっこいいのがありました。<br />
レーザースキャニング技術を使った3Dデータ(CSV)を元に作られてます。</p>

<p>CSVも下記よりダウンロードできます。<br />
<a href="http://code.google.com/p/radiohead/downloads/list" target="_blank">http://code.google.com/p/radiohead/downloads/list</a><br />
FLash版のサンプルも作っている人がいました。<br />
<a href="http://as3s.org/2008/07/radiohead-google-code/" target="_blank">http://as3s.org/2008/07/radiohead-google-code/</a></p>

<p>こんなん作りたいなと思って。。。</p>

<p><br />
レーザースキャニング技術ってここ↓とかでレンタルすればいけるのかな？<br />
<a href="http://www.geokosmos.jp/" target="_blank">http://www.geokosmos.jp/</a><br />
いくらするんだろうね？<br />
</p>]]></description>
<link>http://www.publicroots.com/fmt/archives/000319.html</link>
<guid>http://www.publicroots.com/fmt/archives/000319.html</guid>
<category>news</category>
<pubDate>Fri, 23 Jul 2010 17:19:08 +0900</pubDate>
</item>
<item>
<title>AS3：サーバー時間表示</title>
<description><![CDATA[<p>phpを使ってサーバー時間を取得する方法。良く忘れるのでメモ。<br />
ローカル時間だとユーザに変更される可能性があるので、サーバー時間を取得する機会がたまにあります。</p>

<p>Clock.as<br />
<pre><br />
package <br />
{<br />
import flash.display.*;<br />
import flash.events.Event;<br />
import flash.events.EventDispatcher;<br />
import flash.net.URLLoader;<br />
import flash.net.URLLoaderDataFormat;<br />
import flash.net.URLRequest;<br />
import flash.net.URLRequestMethod;<br />
import flash.net.URLVariables;	</p>

<p>public class Clock extends Sprite<br />
{<br />
private var url:String = "clock.php";</p>

<p>//-------------------------<br />
// コンストラクタ<br />
//-------------------------<br />
public function Clock()<br />
{<br />
addEventListener( Event.ENTER_FRAME, onEnterFrameHandler );<br />
}<br />
private function onEnterFrameHandler(event:Event):void<br />
{<br />
if (url) getClock(url);<br />
}<br />
 //-------------------------<br />
 // ロード<br />
//-------------------------<br />
public function getClock(url:String):void<br />
{<br />
var urlRequest:URLRequest = new URLRequest(url);<br />
urlRequest.method = URLRequestMethod.GET;<br />
var urlLoader:URLLoader = new URLLoader();<br />
urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;<br />
urlLoader.addEventListener(Event.COMPLETE, completeHandler);<br />
urlLoader.load(urlRequest);<br />
}</p>

<p>//-------------------------<br />
// ロード完了<br />
//-------------------------<br />
private function completeHandler(e:Event):void<br />
{<br />
var urlVariables:URLVariables = new URLVariables(e.target.data);			<br />
_clocktxt.text = urlVariables.year +"/"+ urlVariables.month  +"/"+ urlVariables.day  +"/"+ <br />
urlVariables.week  +"/"+ urlVariables.hour  +":"+ urlVariables.minutes  +":"+ urlVariables.seconds;<br />
}<br />
}<br />
}<br />
</pre></p>

<p>clock.php<br />
<pre><br />
＜?php<br />
$year = date("Y"); //年（4ケタ）<br />
$month = date("n"); //月（1ケタ）<br />
$day = date("j"); //日（1ケタ）<br />
$week = date("w"); //曜日（0～6）<br />
$hour = date("G"); //24時間表記<br />
$minutes = date("i"); //分（2ケタ）<br />
$seconds = date("s"); //秒（2ケタ）<br />
switch ($week) {<br />
case 0:<br />
$week = "日曜";<br />
break;<br />
case 1:<br />
$week = "月曜";<br />
break;<br />
case 2:<br />
$week = "火曜";<br />
break;<br />
case 3:<br />
$week = "水曜";<br />
break;<br />
case 4:<br />
$week = "木曜";<br />
break;<br />
case 5:<br />
$week = "金曜";<br />
break;<br />
case 6:<br />
$week = "土曜";<br />
break;<br />
default:<br />
break;<br />
}<br />
//出力<br />
echo "year=".$year."&month=".$month."&day=".$day."&week=".$week."<br />
&hour=".$hour."&minutes=".$minutes."&seconds=".$seconds;<br />
?＞<br />
</pre></p>]]></description>
<link>http://www.publicroots.com/fmt/archives/000316.html</link>
<guid>http://www.publicroots.com/fmt/archives/000316.html</guid>
<category>AS3</category>
<pubDate>Tue, 20 Jul 2010 00:16:15 +0900</pubDate>
</item>
<item>
<title>AS3 : MCに枠線つけるスクリプト</title>
<description><![CDATA[<pre>
import flash.filters.GlowFilter;<br>
〜<br>
onSetFilterglow();<br>
function onSetFilterglow():void {<br>
	//---枠線設定（グロー）<br>
	var c:uint=0xFFFFFF;<br>
	var a:Number=1;<br>
	var bX:Number=6;<br>
	var bY:Number=6;<br>
	var st:Number=10;<br>
	var filterglow:GlowFilter=new GlowFilter(c,a,bX,bY,st);<br>
 
	//枠線適用<br>
	mymc.filters = [filterglow];<br>
}
</pre>

<p>何気にできると思ってたのに、意外に知らなかったのでメモ。</p>

<p>参考サイト<br />
<a href="http://www.c-geru.com/as_blind_side/2010/03/post-2.html" target="_blank">http://www.c-geru.com/as_blind_side/2010/03/post-2.html</a></p>]]></description>
<link>http://www.publicroots.com/fmt/archives/000312.html</link>
<guid>http://www.publicroots.com/fmt/archives/000312.html</guid>
<category>AS3</category>
<pubDate>Fri, 16 Jul 2010 13:51:45 +0900</pubDate>
</item>
<item>
<title>Toyota iQ Font - The Making</title>
<description><![CDATA[<p><img alt="iqfont2.jpg" src="http://www.publicroots.com/fmt/archives/iqfont2.jpg" width="500" height="281" /><br />
<img alt="iqfont1.jpg" src="http://www.publicroots.com/fmt/archives/iqfont1.jpg" width="500" height="448" /></p>

<p><a href="http://www.youtube.com/watch?v=Vwp4iOCECS8" target="_blank">http://www.youtube.com/watch?v=Vwp4iOCECS8</a></p>

<p>Cannes Lions International Advertising Festival<br />
<a href="http://www.canneslions.com/work/cyber/" target="_blank">http://www.canneslions.com/work/cyber/</a></p>

<p>カンヌで受賞した作品をいろいろ見てるけど、<br />
やっぱり僕的には一番これが好きかな。</p>

<p>広告のあり方もかなり変わって来てる気がするね。<br />
WEB単体ではもう物足りない気がします。<br />
あと日本と海外の文化的な違いもあるので難しいなあ。。。<br />
</p>]]></description>
<link>http://www.publicroots.com/fmt/archives/000311.html</link>
<guid>http://www.publicroots.com/fmt/archives/000311.html</guid>
<category>news</category>
<pubDate>Wed, 14 Jul 2010 17:32:24 +0900</pubDate>
</item>
<item>
<title>Frocessingでランダムな円を描く</title>
<description><![CDATA[<p>Frocessingで簡単な円をランダムに描いてみる。<br />
Frocessingはちょっとした演出とかで使えると便利かも。<br />
メインで使用するのはまだちょっと無理かな。</p>

<pre>
package<br>
{<br>
import flash.events.*;<br>
import flash.display.*;<br>
import flash.net.*;<br>
import frocessing.display.F5MovieClip2D;<br>

<p> public class frocessing2 extends F5MovieClip2D<br />
{<br />
private var count:int = 1000;<br />
private var addNum:int = 1;<br />
//画面サイズ<br />
private var _mainWidth:Number = 664;<br />
private var _mainHeight:Number = 664;<br />
private var randWidth:Array;<br />
private var randHeight	:Array;</p>

<p>public function frocessing2()<br />
{<br />
stage.frameRate = 30;<br />
stage.align = StageAlign.TOP_LEFT;<br />
stage.scaleMode = StageScaleMode.NO_SCALE;</p>

<p>randWidth = new Array();<br />
randHeight = new Array();</p>

<p>PictureFunc();<br />
}</p>

<p>//draw()にすればループ演出<br />
public function PictureFunc():void<br />
{<br />
clear();<br />
size(_mainWidth, _mainHeight);<br />
colorMode("RGB", 255, 255, 255, 100);<br />
background(255);//0<br />
noStroke();//枠なし</p>

<p>for(var i:int = 0; i < count; i++){<br />
var ellipse_size:int;</p>

<p>randWidth[i] = random(_mainWidth);<br />
randHeight[i] = random(_mainWidth);<br />
				<br />
fill(random(100,255), random(100,255), random(100,255), random(0,50));//10<br />
ellipse_size = random(0,100);<br />
ellipse(Number(randWidth[i]), Number(randHeight[i]), ellipse_size, ellipse_size);<br />
}<br />
}<br />
}<br />
}<br />
</pre></p>

<p><a href="http://www.publicroots.com/fmt/archives/frocessing2.swf", target="_blank">Download file</a></p>

<p>Processingのライブラリー<br />
<a href="http://processing.org/reference/libraries/" target="_blank">http://processing.org/reference/libraries/</a><br />
ここを見ればいろいろできる。<br />
</p>]]></description>
<link>http://www.publicroots.com/fmt/archives/000310.html</link>
<guid>http://www.publicroots.com/fmt/archives/000310.html</guid>
<category>Frocessing</category>
<pubDate>Wed, 14 Jul 2010 16:04:02 +0900</pubDate>
</item>
<item>
<title>TextFieldの高さを取得</title>
<description><![CDATA[<p>TextFieldの高さは<em>textHeight</em>で取得できるみたい。<br />
ただ、上下に2pixelのズレがあるので+4すれば大丈夫みたいです。</p>

<p>参考サイト<br />
<a href="http://labs.torques.jp/2009/09/25/560/" target="_blank">http://labs.torques.jp/2009/09/25/560/</a></p>]]></description>
<link>http://www.publicroots.com/fmt/archives/000305.html</link>
<guid>http://www.publicroots.com/fmt/archives/000305.html</guid>
<category>AS3</category>
<pubDate>Wed, 02 Jun 2010 18:27:17 +0900</pubDate>
</item>
<item>
<title>AS3 : System.useCodePage</title>
<description><![CDATA[<p>ちょっとハマってしまったのでメモ。<br />
AS2だと<br />
<em>System.useCodepage = false;</em><br />
AS3だと<br />
<em>System.useCodePage = false;</em></p>

<p>Page のPが大文字になってます。</p>]]></description>
<link>http://www.publicroots.com/fmt/archives/000296.html</link>
<guid>http://www.publicroots.com/fmt/archives/000296.html</guid>
<category>AS3</category>
<pubDate>Thu, 01 Apr 2010 19:03:26 +0900</pubDate>
</item>
<item>
<title>AS3 : URLエンコード</title>
<description><![CDATA[<p>AS3.0で文字列をUTF-8でエンコードする方法。<br />
簡単にできるんですね。<br />
<pre><br />
import flash.utils.escapeMultiByte;<br />
〜<br />
var _sample:String = escapeMultiByte("URLエンコード");<br />
trace(_sample);<br />
</pre></p>

<p>参考サイト<br />
<a href="http://f-site.org/articles/2007/06/09232451.html" target="_blank">http://f-site.org/articles/2007/06/09232451.html</a></p>]]></description>
<link>http://www.publicroots.com/fmt/archives/000295.html</link>
<guid>http://www.publicroots.com/fmt/archives/000295.html</guid>
<category>AS3</category>
<pubDate>Thu, 01 Apr 2010 18:55:19 +0900</pubDate>
</item>
<item>
<title>AS3 : Google Maps API</title>
<description><![CDATA[<p>FlashとGoogleMapの連携って意外に簡単。</p>

<p>まず、SDKをダウンロードしてからAPIキーを取得する。<br />
<a href="http://code.google.com/apis/maps/documentation/flash/" target="_blank">http://code.google.com/apis/maps/documentation/flash/</a><br />
<a href="http://code.google.com/apis/maps/signup.html" target="_blank">http://code.google.com/apis/maps/signup.html</a></p>

<p>swcファイル（map_1_8a.swc）をComponentsに格納します。<br />
あとはクラスをインポートしていくつかnewするだけで地図が表示できます。</p>

<pre>
import com.google.maps.LatLng;<br>
import com.google.maps.Map;<br>
import com.google.maps.MapEvent;<br>
import com.google.maps.MapType;<br>

<p>var map:Map = new Map();<br />
map.key = "your_api_key";<br />
map.setSize(new Point(stage.stageWidth, stage.stageHeight);<br />
map.addEventListener(MapEvent.MAP_READY, onMapReady);<br />
this.addChild(map);</p>

<p>function onMapReady(event:Event):void {<br />
  map.setCenter(new LatLng(40.736072,-73.992062), 14, MapType.NORMAL_MAP_TYPE);<br />
}<br />
</pre></p>]]></description>
<link>http://www.publicroots.com/fmt/archives/000293.html</link>
<guid>http://www.publicroots.com/fmt/archives/000293.html</guid>
<category>AS3</category>
<pubDate>Sun, 07 Mar 2010 17:33:09 +0900</pubDate>
</item>
<item>
<title>Frocessing</title>
<description><![CDATA[<p>Processingライクなドロー系AS3ライブラリです。<br />
あくまでライクだそうですが、遊んでみると結構面白いです。</p>

<p>Spark projectよりダウンロードできます。<br />
<a href="http://www.libspark.org/wiki/nutsu/Frocessing" target="_blank">http://www.libspark.org/wiki/nutsu/Frocessing</a><br><br />
開発者 nutsu さん<br />
<a href="http://nutsu.com/" target="_blank">http://nutsu.com/</a><br><br />
サンプルサイト<br />
<a href="http://hokori.net/2009/08/13/frocessing/" target="_blank">http://hokori.net/2009/08/13/frocessing/</a><br />
<a href="http://blog.alt-scape.com/archives/138" target="_blank">http://blog.alt-scape.com/archives/138</a><br><br />
<em><b>Processing</b></em><br />
電子アートとビジュアルデザインのためのプログラミング言語<br />
<a href="http://processing.org/" target="_blank">http://processing.org/</a><br />
<br></p>]]></description>
<link>http://www.publicroots.com/fmt/archives/000292.html</link>
<guid>http://www.publicroots.com/fmt/archives/000292.html</guid>
<category>Frocessing</category>
<pubDate>Wed, 20 Jan 2010 17:17:14 +0900</pubDate>
</item>
<item>
<title>AS3 : SoundMixer.computeSpectrum</title>
<description><![CDATA[<p><em>SoundMixer.computeSpectrum</em>は結構問題あるようですが、<br />
とりあえず波形を表示するサンプルを作ってみました。<br><br />
<pre><br />
package {<br />
 import flash.display.*;<br />
 import flash.events.*;<br />
 import flash.filters.*;<br />
 import flash.media.*;<br />
 import flash.net.*;<br />
 import flash.utils.*;<br />
	<br />
 public class Main extends Sprite {<br />
  private var WaveH:int = stage.stageHeight/2;<br />
  //チャンネル毎のByteArray取得範囲<br />
  private const chanlength:int = 550;<br />
  private var _byteArray:ByteArray = new ByteArray();</p>

<p>  //サウンドの再生・毎フレームイベント設定<br />
  public function Main() {<br />
   var sound:Sound = new Sound();<br />
   var soundurl:URLRequest = new URLRequest("loop.mp3");<br />
   sound.load(soundurl);<br />
		<br />
   var channel:SoundChannel;<br />
   channel = sound.play(0,100);<br />
   addEventListener( Event.ENTER_FRAME, enterFrameHandler );<br />
   //channel.addEventListener( Event.SOUND_COMPLETE, PlayCompleteHandler );<br />
   }		</p>

<p>   //毎フレームサウンドの波形取得・線描画<br />
   private function enterFrameHandler( e:Event ):void {<br />
   //_byteArrayにサウンド波形の値を設定<br />
   SoundMixer.computeSpectrum( _byteArray, false, 0 );<br />
   var g:Graphics = graphics;<br />
   g.clear();<br />
	<br />
   g.lineStyle( 0, 0x000000 );<br />
   g.beginFill (0xFF0000, 1.0);	// 面のスタイル設定<br />
		<br />
   /* 円で表示する場合<br />
   var n:Number = 0;<br />
   n = ( _byteArray.readFloat() * WaveH );<br />
   g.drawCircle(275,200,(WaveH - n));<br />
   */</p>

<p>   /* 波形表示の場合*/<br />
   g.moveTo( 0, WaveH );<br />
   //左チャンネルだけ取得して描画<br />
   var n:Number = 0;<br />
   for ( var i:int = 0; i < chanlength; i++ ) {<br />
    n = ( _byteArray.readFloat() * WaveH );<br />
    g.lineTo( i, WaveH - n );<br />
   }<br />
  }<br />
  private function PlayCompleteHandler( e:Event ):void {<br />
   removeEventListener( Event.ENTER_FRAME, enterFrameHandler );<br />
  }<br />
 }<br />
}<br />
</pre><br />
</p>]]></description>
<link>http://www.publicroots.com/fmt/archives/000291.html</link>
<guid>http://www.publicroots.com/fmt/archives/000291.html</guid>
<category>AS3</category>
<pubDate>Wed, 20 Jan 2010 00:35:28 +0900</pubDate>
</item>
<item>
<title>AS3 : Google Analytics</title>
<description><![CDATA[<p>AS2の書き方から変更されてるんですね。</p>

<p>まずgoogle codeから<a href="http://code.google.com/p/gaforflash/" target="_blank">gaforflash</a>をダウンロードする。</p>

<p>Macの場合は、<br />
<em>Macintosh HD/Applications/Adobe Flash CS3/Configuration/Components</em><br />
にダウンロードしたgaforflash/libフォルダーを"Google"とか適当な名前付けてコピーする。<br />
Winの場合は、<br />
<em>C:¥Program Files¥Adobe¥ Adobe Flash CS3¥language¥Configuration¥Components</em></p>

<p>コンポーネントウィンドウの中からGoogle/analytics.swcをflaファイルの適当なレイヤーに配置、<br />
名前はtrackerとかになってるからそのままでOK。パラメータのaccountに"UA-XXXXXXX-X"を入れる。</p>

<p>ソースは<br />
<pre><br />
import com.google.analytics.AnalyticsTracker;  <br />
import com.google.analytics.GATracker;  </p>

<p>//取得したいイベントの処理後に追加<br />
tracker.trackPageview("/sample");<br />
</pre></p>]]></description>
<link>http://www.publicroots.com/fmt/archives/000283.html</link>
<guid>http://www.publicroots.com/fmt/archives/000283.html</guid>
<category>AS3</category>
<pubDate>Wed, 04 Nov 2009 13:05:04 +0900</pubDate>
</item>
<item>
<title>AS3 : ドロップシャドー</title>
<description><![CDATA[<pre>
import flash.filters.DropShadowFilter;<br>
〜<br>
//dropShadow<br>
private var dropShadow : DropShadowFilter;<br>
〜<br>
//ドロップシャドー<br>
dropShadow = new DropShadowFilter();<br>
dropShadow.distance = 0;<br>
dropShadow.blurX = 16;<br>
dropShadow.blurY = 16;<br>
dropShadow.alpha= 0.20;<br>
sample_img.filters = [dropShadow];<br>
</pre>]]></description>
<link>http://www.publicroots.com/fmt/archives/000280.html</link>
<guid>http://www.publicroots.com/fmt/archives/000280.html</guid>
<category>AS3</category>
<pubDate>Wed, 14 Oct 2009 22:45:57 +0900</pubDate>
</item>


</channel>
</rss>