<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="ja">
<title>PUBLICROOTS | mtFlash</title>
<link rel="alternate" type="text/html" href="http://www.publicroots.com/fmt/" />
<modified>2010-08-13T10:52:48Z</modified>
<tagline></tagline>
<id>tag:www.publicroots.com,2010:/fmt//6</id>
<generator url="http://www.movabletype.org/" version="3.151-ja">Movable Type</generator>
<copyright>Copyright (c) 2010, publicroots</copyright>
<entry>
<title>YouTube Player を Flash に埋め込む</title>
<link rel="alternate" type="text/html" href="http://www.publicroots.com/fmt/archives/000324.html" />
<modified>2010-08-13T10:52:48Z</modified>
<issued>2010-08-13T10:37:51Z</issued>
<id>tag:www.publicroots.com,2010:/fmt//6.324</id>
<created>2010-08-13T10:37:51Z</created>
<summary type="text/plain">YouTube のプレイヤー SWF（http://www.youtube.co...</summary>
<author>
<name>publicroots</name>
<url>http://www.publicroots.com/</url>
<email>publicroots@gmail.com</email>
</author>
<dc:subject>AS3</dc:subject>
<content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.publicroots.com/fmt/">
<![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>]]>

</content>
</entry>
<entry>
<title>FlickrとFlashの連動 - Flickr API</title>
<link rel="alternate" type="text/html" href="http://www.publicroots.com/fmt/archives/000321.html" />
<modified>2010-08-12T19:38:41Z</modified>
<issued>2010-08-04T11:06:09Z</issued>
<id>tag:www.publicroots.com,2010:/fmt//6.321</id>
<created>2010-08-04T11:06:09Z</created>
<summary type="text/plain">ドキュメントクラス（MainStage.as）は省略。flaファイルのルートにp...</summary>
<author>
<name>publicroots</name>
<url>http://www.publicroots.com/</url>
<email>publicroots@gmail.com</email>
</author>
<dc:subject>AS3</dc:subject>
<content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.publicroots.com/fmt/">
<![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>]]>

</content>
</entry>
<entry>
<title>RA DIOHEA_D / HOU SE OF_C ARDS </title>
<link rel="alternate" type="text/html" href="http://www.publicroots.com/fmt/archives/000319.html" />
<modified>2010-07-29T08:18:56Z</modified>
<issued>2010-07-23T08:19:08Z</issued>
<id>tag:www.publicroots.com,2010:/fmt//6.319</id>
<created>2010-07-23T08:19:08Z</created>
<summary type="text/plain"> http://www.youtube.com/watch?v=8nTFjVm9...</summary>
<author>
<name>publicroots</name>
<url>http://www.publicroots.com/</url>
<email>publicroots@gmail.com</email>
</author>
<dc:subject>news</dc:subject>
<content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.publicroots.com/fmt/">
<![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>]]>
<![CDATA[<p>【追記】<br />
いろいろ調べて見つけました。<br />
<a href="http://www.aircord.co.jp/blog/2010/06/3d-2.php" target="_blank">http://www.aircord.co.jp/blog/2010/06/3d-2.php</a></p>

<p>NIKE STADIUM TOKYOインスタレーションで3Dスキャンカメラを使っていたようです。<br />
カメラはMESA Imagingの物らしいです。<br />
<a href="http://www.mesa-imaging.ch/" target="_blank">http://www.mesa-imaging.ch/</a></p>

<p>ライゾマティクスさん制作のこれもこのカメラだそうです。<br />
<a href="http://yakushimaruetsuko.com/yksmr3dscan/" target="_blank">http://yakushimaruetsuko.com/yksmr3dscan/</a></p>]]>
</content>
</entry>
<entry>
<title>AS3：サーバー時間表示</title>
<link rel="alternate" type="text/html" href="http://www.publicroots.com/fmt/archives/000316.html" />
<modified>2010-07-20T16:41:21Z</modified>
<issued>2010-07-19T15:16:15Z</issued>
<id>tag:www.publicroots.com,2010:/fmt//6.316</id>
<created>2010-07-19T15:16:15Z</created>
<summary type="text/plain">phpを使ってサーバー時間を取得する方法。良く忘れるのでメモ。 ローカル時間だと...</summary>
<author>
<name>publicroots</name>
<url>http://www.publicroots.com/</url>
<email>publicroots@gmail.com</email>
</author>
<dc:subject>AS3</dc:subject>
<content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.publicroots.com/fmt/">
<![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>]]>

</content>
</entry>
<entry>
<title>AS3 : MCに枠線つけるスクリプト</title>
<link rel="alternate" type="text/html" href="http://www.publicroots.com/fmt/archives/000312.html" />
<modified>2010-07-20T09:40:30Z</modified>
<issued>2010-07-16T04:51:45Z</issued>
<id>tag:www.publicroots.com,2010:/fmt//6.312</id>
<created>2010-07-16T04:51:45Z</created>
<summary type="text/plain"> import flash.filters.GlowFilter; 〜 onSe...</summary>
<author>
<name>publicroots</name>
<url>http://www.publicroots.com/</url>
<email>publicroots@gmail.com</email>
</author>
<dc:subject>AS3</dc:subject>
<content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.publicroots.com/fmt/">
<![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>]]>

</content>
</entry>
<entry>
<title>Toyota iQ Font - The Making</title>
<link rel="alternate" type="text/html" href="http://www.publicroots.com/fmt/archives/000311.html" />
<modified>2010-07-28T10:34:45Z</modified>
<issued>2010-07-14T08:32:24Z</issued>
<id>tag:www.publicroots.com,2010:/fmt//6.311</id>
<created>2010-07-14T08:32:24Z</created>
<summary type="text/plain"> http://www.youtube.com/watch?v=Vwp4iOCE...</summary>
<author>
<name>publicroots</name>
<url>http://www.publicroots.com/</url>
<email>publicroots@gmail.com</email>
</author>
<dc:subject>news</dc:subject>
<content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.publicroots.com/fmt/">
<![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>]]>

</content>
</entry>
<entry>
<title>Frocessingでランダムな円を描く</title>
<link rel="alternate" type="text/html" href="http://www.publicroots.com/fmt/archives/000310.html" />
<modified>2010-07-14T07:50:53Z</modified>
<issued>2010-07-14T07:04:02Z</issued>
<id>tag:www.publicroots.com,2010:/fmt//6.310</id>
<created>2010-07-14T07:04:02Z</created>
<summary type="text/plain">Frocessingで簡単な円をランダムに描いてみる。 Frocessingはち...</summary>
<author>
<name>publicroots</name>
<url>http://www.publicroots.com/</url>
<email>publicroots@gmail.com</email>
</author>
<dc:subject>Frocessing</dc:subject>
<content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.publicroots.com/fmt/">
<![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>]]>

</content>
</entry>
<entry>
<title>TextFieldの高さを取得</title>
<link rel="alternate" type="text/html" href="http://www.publicroots.com/fmt/archives/000305.html" />
<modified>2010-06-02T09:30:39Z</modified>
<issued>2010-06-02T09:27:17Z</issued>
<id>tag:www.publicroots.com,2010:/fmt//6.305</id>
<created>2010-06-02T09:27:17Z</created>
<summary type="text/plain">TextFieldの高さはtextHeightで取得できるみたい。 ただ、上下に...</summary>
<author>
<name>publicroots</name>
<url>http://www.publicroots.com/</url>
<email>publicroots@gmail.com</email>
</author>
<dc:subject>AS3</dc:subject>
<content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.publicroots.com/fmt/">
<![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>]]>

</content>
</entry>
<entry>
<title>AS3 : System.useCodePage</title>
<link rel="alternate" type="text/html" href="http://www.publicroots.com/fmt/archives/000296.html" />
<modified>2010-04-01T10:05:48Z</modified>
<issued>2010-04-01T10:03:26Z</issued>
<id>tag:www.publicroots.com,2010:/fmt//6.296</id>
<created>2010-04-01T10:03:26Z</created>
<summary type="text/plain">ちょっとハマってしまったのでメモ。 AS2だと System.useCodepa...</summary>
<author>
<name>publicroots</name>
<url>http://www.publicroots.com/</url>
<email>publicroots@gmail.com</email>
</author>
<dc:subject>AS3</dc:subject>
<content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.publicroots.com/fmt/">
<![CDATA[<p>ちょっとハマってしまったのでメモ。<br />
AS2だと<br />
<em>System.useCodepage = false;</em><br />
AS3だと<br />
<em>System.useCodePage = false;</em></p>

<p>Page のPが大文字になってます。</p>]]>

</content>
</entry>
<entry>
<title>AS3 : URLエンコード</title>
<link rel="alternate" type="text/html" href="http://www.publicroots.com/fmt/archives/000295.html" />
<modified>2010-04-01T10:01:26Z</modified>
<issued>2010-04-01T09:55:19Z</issued>
<id>tag:www.publicroots.com,2010:/fmt//6.295</id>
<created>2010-04-01T09:55:19Z</created>
<summary type="text/plain">AS3.0で文字列をUTF-8でエンコードする方法。 簡単にできるんですね。 i...</summary>
<author>
<name>publicroots</name>
<url>http://www.publicroots.com/</url>
<email>publicroots@gmail.com</email>
</author>
<dc:subject>AS3</dc:subject>
<content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.publicroots.com/fmt/">
<![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>]]>

</content>
</entry>
<entry>
<title>AS3 : Google Maps API</title>
<link rel="alternate" type="text/html" href="http://www.publicroots.com/fmt/archives/000293.html" />
<modified>2010-03-07T08:55:51Z</modified>
<issued>2010-03-07T08:33:09Z</issued>
<id>tag:www.publicroots.com,2010:/fmt//6.293</id>
<created>2010-03-07T08:33:09Z</created>
<summary type="text/plain">FlashとGoogleMapの連携って意外に簡単。 まず、SDKをダウンロード...</summary>
<author>
<name>publicroots</name>
<url>http://www.publicroots.com/</url>
<email>publicroots@gmail.com</email>
</author>
<dc:subject>AS3</dc:subject>
<content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.publicroots.com/fmt/">
<![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>]]>
<![CDATA[<p>参考サイト<br />
<a href="http://blog.alt-scape.com/archives/231" target="_blank">http://blog.alt-scape.com/archives/231</a><br />
<a href="http://level0.kayac.com/2009/12/googlemapapi_route1.php" target="_blank">http://level0.kayac.com/2009/12/googlemapapi_route1.php</a><br />
<a href="http://code.google.com/intl/ja/apis/maps/documentation/flash/tutorial-flash.html" target="_blank">http://code.google.com/intl/ja/apis/maps/documentation/flash/tutorial-flash.html</a></p>

<p>ラインを引いたりするのも簡単にできそうですね。</p>]]>
</content>
</entry>
<entry>
<title>Frocessing</title>
<link rel="alternate" type="text/html" href="http://www.publicroots.com/fmt/archives/000292.html" />
<modified>2010-01-20T08:31:43Z</modified>
<issued>2010-01-20T08:17:14Z</issued>
<id>tag:www.publicroots.com,2010:/fmt//6.292</id>
<created>2010-01-20T08:17:14Z</created>
<summary type="text/plain">Processingライクなドロー系AS3ライブラリです。 あくまでライクだそう...</summary>
<author>
<name>publicroots</name>
<url>http://www.publicroots.com/</url>
<email>publicroots@gmail.com</email>
</author>
<dc:subject>Frocessing</dc:subject>
<content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.publicroots.com/fmt/">
<![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>]]>

</content>
</entry>
<entry>
<title>AS3 : SoundMixer.computeSpectrum</title>
<link rel="alternate" type="text/html" href="http://www.publicroots.com/fmt/archives/000291.html" />
<modified>2010-01-20T02:37:17Z</modified>
<issued>2010-01-19T15:35:28Z</issued>
<id>tag:www.publicroots.com,2010:/fmt//6.291</id>
<created>2010-01-19T15:35:28Z</created>
<summary type="text/plain">SoundMixer.computeSpectrumは結構問題あるようですが、 ...</summary>
<author>
<name>publicroots</name>
<url>http://www.publicroots.com/</url>
<email>publicroots@gmail.com</email>
</author>
<dc:subject>AS3</dc:subject>
<content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.publicroots.com/fmt/">
<![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>]]>
<![CDATA[<p><br><br />
問題点としては、別ブラウザーで表示した別サイトの音も解析しようとしておかしな動きをするようですね。<br />
まあ同時に表示しておく人はあまりいないと思いますが。。。<br><br />
<a href="http://feb19.jp/blog/archives/000133.php" target="_blank">http://feb19.jp/blog/archives/000133.php</a><br />
<br></p>]]>
</content>
</entry>
<entry>
<title>AS3 : Google Analytics</title>
<link rel="alternate" type="text/html" href="http://www.publicroots.com/fmt/archives/000283.html" />
<modified>2010-08-23T17:15:17Z</modified>
<issued>2009-11-04T04:05:04Z</issued>
<id>tag:www.publicroots.com,2009:/fmt//6.283</id>
<created>2009-11-04T04:05:04Z</created>
<summary type="text/plain">AS2の書き方から変更されてるんですね。 まずgoogle codeからgafo...</summary>
<author>
<name>publicroots</name>
<url>http://www.publicroots.com/</url>
<email>publicroots@gmail.com</email>
</author>
<dc:subject>AS3</dc:subject>
<content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.publicroots.com/fmt/">
<![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>]]>
<![CDATA[<p><b>【追記】2010.3.7</b><br />
GATrackerをnewしてtrackerを作成しする方法は下記です。<br />
<a href="http://deepkick.com/blog/archives/2009/08/google_analytic.html/" target="_blank">http://deepkick.com/blog/archives/2009/08/google_analytic.html</a><br />
<pre><br />
package {<br><br />
　　import flash.display.*;<br><br />
　　import flash.events.*;<br><br />
　　import com.google.analytics.AnalyticsTracker;<br><br />
　　import com.google.analytics.GATracker;<br><br />
	<br><br />
　　public class Main extends Sprite {<br><br />
　　private var tracker:AnalyticsTracker;<br><br />
　　<br><br />
　　public function Main () {<br />
　　　tracker = new GATracker( this, "UA-xxxxxx-yy", "AS3", true );<br />
　　　stage.addEventListener( MouseEvent.CLICK, onStageClick );<br />
　　}</p>

<p>　　private function onStageClick ( event:MouseEvent ):void {<br />
　　　tracker.trackPageview("/sample"); <br />
　　}<br />
　}<br />
}<br />
</pre></p>]]>
</content>
</entry>
<entry>
<title>AS3 : ドロップシャドー</title>
<link rel="alternate" type="text/html" href="http://www.publicroots.com/fmt/archives/000280.html" />
<modified>2010-03-10T06:06:32Z</modified>
<issued>2009-10-14T13:45:57Z</issued>
<id>tag:www.publicroots.com,2009:/fmt//6.280</id>
<created>2009-10-14T13:45:57Z</created>
<summary type="text/plain"> import flash.filters.DropShadowFilter; ...</summary>
<author>
<name>publicroots</name>
<url>http://www.publicroots.com/</url>
<email>publicroots@gmail.com</email>
</author>
<dc:subject>AS3</dc:subject>
<content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.publicroots.com/fmt/">
<![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>]]>

</content>
</entry>

</feed>