<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>2BLOG</title>
	<atom:link href="http://blog.nipx.jp/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.nipx.jp</link>
	<description></description>
	<lastBuildDate>Sat, 31 Dec 2011 16:40:57 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Happy New Year</title>
		<link>http://blog.nipx.jp/2012/01/happy-new-year-2/</link>
		<comments>http://blog.nipx.jp/2012/01/happy-new-year-2/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 15:54:53 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[Illustration]]></category>
		<category><![CDATA[nipx]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=5192</guid>
		<description><![CDATA[あけましておめでとうございます。 2012年がみなさまにとってよい年でありますように。]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.nipx.jp/wp-content/uploads/2012/01/nipx2012.png" alt="" title="" width="500" height="700" class="aligncenter size-full wp-image-5193" /></p>
<p>あけましておめでとうございます。<br />
2012年がみなさまにとってよい年でありますように。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2012/01/happy-new-year-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2px.cc ドメイン利用終了のお知らせ</title>
		<link>http://blog.nipx.jp/2011/12/2px-cc-%e3%83%89%e3%83%a1%e3%82%a4%e3%83%b3%e5%88%a9%e7%94%a8%e7%b5%82%e4%ba%86%e3%81%ae%e3%81%8a%e7%9f%a5%e3%82%89%e3%81%9b/</link>
		<comments>http://blog.nipx.jp/2011/12/2px-cc-%e3%83%89%e3%83%a1%e3%82%a4%e3%83%b3%e5%88%a9%e7%94%a8%e7%b5%82%e4%ba%86%e3%81%ae%e3%81%8a%e7%9f%a5%e3%82%89%e3%81%9b/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 03:59:27 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[Works]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=5188</guid>
		<description><![CDATA[私たちニピクセルがごく初期に利用していた、2px.cc ドメインの利用を2012/3/10をもって終了します。 2年近く前に現在の、nipx.jp を利用し始めてからは、2px.cc で新しいドメインやメールを発行してい [...]]]></description>
			<content:encoded><![CDATA[<p>私たちニピクセルがごく初期に利用していた、2px.cc ドメインの利用を2012/3/10をもって終了します。<br />
<a href="http://blog.nipx.jp/2009/02/ニピクセルのサイトをリニューアルしました/trackback/">2年近く前</a>に現在の、nipx.jp を利用し始めてからは、2px.cc で新しいドメインやメールを発行していないのですが、ごく初期に名刺交換をさせていただいた皆様には、2px.cc のメールアドレスが記載された名刺をお渡ししております。お手数ですが 2px.cc を nipx.jp に置き換えてご連絡いただけますようお願いいたします。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/12/2px-cc-%e3%83%89%e3%83%a1%e3%82%a4%e3%83%b3%e5%88%a9%e7%94%a8%e7%b5%82%e4%ba%86%e3%81%ae%e3%81%8a%e7%9f%a5%e3%82%89%e3%81%9b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>おしゃれデジカメフレーム年賀状 collections 2012年版</title>
		<link>http://blog.nipx.jp/2011/11/%e3%81%8a%e3%81%97%e3%82%83%e3%82%8c%e3%83%87%e3%82%b8%e3%82%ab%e3%83%a1%e3%83%95%e3%83%ac%e3%83%bc%e3%83%a0%e5%b9%b4%e8%b3%80%e7%8a%b6-collections-2012%e5%b9%b4%e7%89%88/</link>
		<comments>http://blog.nipx.jp/2011/11/%e3%81%8a%e3%81%97%e3%82%83%e3%82%8c%e3%83%87%e3%82%b8%e3%82%ab%e3%83%a1%e3%83%95%e3%83%ac%e3%83%bc%e3%83%a0%e5%b9%b4%e8%b3%80%e7%8a%b6-collections-2012%e5%b9%b4%e7%89%88/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 14:56:26 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Illustration]]></category>
		<category><![CDATA[Works]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=5163</guid>
		<description><![CDATA[技術評論社「おしゃれデジカメフレーム年賀状 collections 2012年版」に年賀状デザインを7作品提供しました。 冊子の見本をいただきましたので中身を拝見しましたが、本当に可愛いフレーム素材が沢山あって特に小さい [...]]]></description>
			<content:encoded><![CDATA[<div style="float:left">
<a href="http://www.amazon.co.jp/gp/product/4774147427/ref=as_li_ss_il?ie=UTF8&#038;tag=20e8-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774147427"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=4774147427&#038;MarketPlace=JP&#038;ID=AsinImage&#038;WS=1&#038;tag=20e8-22&#038;ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=20e8-22&#038;l=as2&#038;o=9&#038;a=4774147427" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</div>
<p><img src="http://blog.nipx.jp/wp-content/uploads/2011/11/DSCN0436_360.jpg" alt="" title="" width="360" height="133" class="aligncenter size-full wp-image-5175" /></p>
<p><br style="clear:both"></p>
<p>技術評論社「おしゃれデジカメフレーム年賀状 collections 2012年版」に年賀状デザインを7作品提供しました。</p>
<p>冊子の見本をいただきましたので中身を拝見しましたが、本当に可愛いフレーム素材が沢山あって特に小さいお子さんの写真を使って年賀状を作りたい！という方には、ピッタリなフレームがあるんじゃないかなと思いました。</p>
<p>内容も素材だけの本ではなく上手な写真の取り方や年賀状ソフト操作解説など年賀状を作るための記事が充実しており初めてでもきれいな年賀状が作れる内容になっています。写真フレームをつかった年賀状をお探しの方は是非一度ご覧になってみてください。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/11/%e3%81%8a%e3%81%97%e3%82%83%e3%82%8c%e3%83%87%e3%82%b8%e3%82%ab%e3%83%a1%e3%83%95%e3%83%ac%e3%83%bc%e3%83%a0%e5%b9%b4%e8%b3%80%e7%8a%b6-collections-2012%e5%b9%b4%e7%89%88/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nipx.jp リニューアル</title>
		<link>http://blog.nipx.jp/2011/11/nipx-jp-%e3%83%aa%e3%83%8b%e3%83%a5%e3%83%bc%e3%82%a2%e3%83%ab/</link>
		<comments>http://blog.nipx.jp/2011/11/nipx-jp-%e3%83%aa%e3%83%8b%e3%83%a5%e3%83%bc%e3%82%a2%e3%83%ab/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 17:17:43 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[nipx]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=5149</guid>
		<description><![CDATA[前のエントリでやると言ってからは早かった。新しいウェブサイトはNON Flashでシンプルなページにリニューアル。 これで晴れてスペースシャトル退役。シャトルのページは http://shuttle.nipx.jp に移 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://nipx.jp"><img src="http://blog.nipx.jp/wp-content/uploads/2011/11/nipxjp1.png" alt="" title="" width="520" height="416" class="aligncenter size-full wp-image-5150" /></a></p>
<p><a href="http://nipx.jp"><img src="http://blog.nipx.jp/wp-content/uploads/2011/11/nipxjp3.jpg" alt="" title="" width="520" height="416" class="aligncenter size-full wp-image-5152" /></a></p>
<p><a href="http://nipx.jp"><img src="http://blog.nipx.jp/wp-content/uploads/2011/11/nipxjp4.png" alt="" title="" width="520" height="416" class="aligncenter size-full wp-image-5153" /></a></p>
<p>前のエントリでやると言ってからは早かった。新しいウェブサイトはNON Flashでシンプルなページにリニューアル。<br />
これで晴れてスペースシャトル退役。シャトルのページは <a href="http://shuttle.nipx.jp">http://shuttle.nipx.jp</a> に移動しました。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/11/nipx-jp-%e3%83%aa%e3%83%8b%e3%83%a5%e3%83%bc%e3%82%a2%e3%83%ab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>年末までにしたいこと。</title>
		<link>http://blog.nipx.jp/2011/11/%e5%b9%b4%e6%9c%ab%e3%81%be%e3%81%a7%e3%81%ab%e3%81%97%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8%e3%80%82/</link>
		<comments>http://blog.nipx.jp/2011/11/%e5%b9%b4%e6%9c%ab%e3%81%be%e3%81%a7%e3%81%ab%e3%81%97%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8%e3%80%82/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 14:11:08 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[nipx]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=5121</guid>
		<description><![CDATA[今年も残すところあと2ヶ月。2ヶ月でやりたいことを書いて自分にプレッシャーをかける。 あと2ヶ月でやりたいこと。それは&#8230; 1番。ホームページ、nipx.jp のリニューアル。 こないだスペースシャトル完全に退 [...]]]></description>
			<content:encoded><![CDATA[<p>今年も残すところあと2ヶ月。2ヶ月でやりたいことを書いて自分にプレッシャーをかける。<br />
あと2ヶ月でやりたいこと。それは&#8230;</p>
<p><br/></p>
<p>1番。<strong>ホームページ、nipx.jp のリニューアル。</strong></p>
<p>こないだスペースシャトル完全に退役したしな&#8230;。<br />
前にもそんなこと言った気がしてアーカイブを調べてみたらやっぱり言ってる。<a href="http://blog.nipx.jp/2010/01/nipx-jp/">2010年1月8日のブログ</a>で。この時の目標だったら2010年中にリニューアルしているはずだったんだな&#8230;。本物のスペースシャトルの退役が今年の7月まで遅れたので結果的に対面を保ったけど、いいかげん変えねばならんだろう。このままでは「こんなロケットあったよねw」って言われる日も近い&#8230;。</p>
<p>例年だと12月に入ると年賀状だとか、決算だとか、掃除だとか、慌ただしくなるし、とかく自分自身のことになると遅れがちになるというか。なのでここでしっかり宣言してやりきるんだ、自分。がんばれ自分。</p>
<p><br/></p>
<p>2番。<strong>事務所。</strong></p>
<p>これは年末迄にとかってわけじゃないんだけど。<br />
クリエーターのオフィスというと、なんだかオシャレなオフィスで想像力をかき立てて&#8230;なんてイメージがありますけども、知ってる人は知ってると思いますが、今ウチの事務所はシェアオフィスでとても素っ気ないオフィスなんですわ。まぁそれはいいんですけど。自分の場合、めちゃくちゃ現実主義なところがあってオシャレさなどまったく気にしない、とにかく実用度重視。駅1分だったり、充分な収納だったり、使い勝手はとてもよいので気にってはいるのです。<br />
しかし、そんな事務所に問題が出てきた。今年に入ってから通勤にバイクを利用するようになったのだけど、これを止めるスペースが無い。<br />
さらに新中野駅付近は公共のバイク駐車場がありません。それどころか今年に入るまで自転車の駐輪場すら無かった。そのくせ、毎日のように自転車の撤去やってる区はどうかと思いますけども。駐車場作るのに税金使えと。</p>
<p>で、結局、事務所から15分近く離れた中野のバイク駐車場に止めている。これはとても不便。オフィスが悪いわけじゃないんですけど、それこそ実用重視な自分の価値観から大きく外れているんですわ。近くに止めるなら車用の駐車場を借りるしかない状況ですけどバイク止めるには高すぎるので&#8230;。それだったらオフィスを変えた方がいいのかなぁと検討中です。<br />
近くでバイク置かせてくれるとこか、別のバイク置けるオフィス、どこかないですかね。</p>
<p><br/></p>
<p>3番。<strong>SNS。</strong></p>
<p>もともと自分、ソーシャル系のサービスとは無縁でした。それが昨今、twitterくらいやってないとネットに存在していないくらいの感じになってきて、仕事でAPIを使うとかもあってtwitterを昨年末に。今年はfacebookも&#8230;。自分では意外だったのですが使っているうちにその便利さがわかってきてもっと上手く使えるのではないかと思うようにもなり活用しています。その反面今年はこのブログの更新が少ないです。SNSを使い始めたのも原因の一つにはなっているかと。</p>
<p>そこで思う、twitterにfacebookはニピクセルで作ったfacebookページと個人のウォール。それにこのブログ。ちょっと乱暴な言い方ですが似たようなものが多くないかと。</p>
<p>自分のように自営業だとONとOFFでクロスするところも多くあって、何をどういう位置づけでやるべきか、それともやめるべきか、悩ましい。ま、そんなもん、誰も気にせん、見ない、ほっときゃいいだろう！って感じで気にし過ぎかもしれませんけど。どのコンテンツも運用されていないと痛々しいものなので。<br />
他にも自分で運用するものを乱発しているところがあるので、しっかり整理して考えたいなぁと思っていますね。これは年末暇なときに考えるか&#8230;。</p>
<p><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/11/%e5%b9%b4%e6%9c%ab%e3%81%be%e3%81%a7%e3%81%ab%e3%81%97%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JUMPIN&#8217;maru プロモーション</title>
		<link>http://blog.nipx.jp/2011/11/jumpinmaru-%e3%83%97%e3%83%ad%e3%83%a2%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3/</link>
		<comments>http://blog.nipx.jp/2011/11/jumpinmaru-%e3%83%97%e3%83%ad%e3%83%a2%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 08:12:24 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[nipx]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=5092</guid>
		<description><![CDATA[iOSのデベロッパー登録をして1年経ちますが、昨日はじめてプロモーションコードというもを知りました。これが何かというとiOSでは誰かにアプリを試してもらう場合に原則購入してもらうしかない。これは無料アプリならいいけど有料 [...]]]></description>
			<content:encoded><![CDATA[<p>iOSのデベロッパー登録をして1年経ちますが、昨日はじめてプロモーションコードというもを知りました。これが何かというとiOSでは誰かにアプリを試してもらう場合に原則購入してもらうしかない。これは無料アプリならいいけど有料アプリの場合に困ります。端末のUDIDをもらってAd Hockで配布って手もありますけど、これは試してもらうというより特定の人に対して配布する趣旨で、不特定の人に試しもらうには適さない方法でした。</p>
<p>そこで便利なのがプロモーションコード。このコードを使うと購入せずにアプリをダウンロードできる！これで自分の作った有料iPhoneアプリを息子がダウンロードして30%の赤字なんて話もなくなるわけだ。ああこんなものに1年も気づかないだなんて。今迄は完成したアプリをAd Hockで自分の端末にいれてました。</p>
<p><br/></p>
<p>■プロモーションコードの使い方。（iPhoneから使う場合です）</p>
<p>1）プロモーションコードをもらう</p>
<p>2）App Storeを開いて一番下までスクロール。「iTunes Card/コードを使う」をクリック。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/11/IMG_0216.jpg" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-5093" /></p>
<p>3）プロモーションコードを入力して「iTunes Card/コードを使う」をクリック。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/11/IMG_0217.jpg" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-5094" /></p>
<p>これでダウンロードが始まります。</p>
<p><br/></p>
<p>はい、それでは試しに先日リリースしたばかりの<a href="http://itunes.apple.com/jp/app/jumpinmaru/id475099401?mt=8&#038;uo=4">JUMPIN&#8217;maru</a>のプロモーションコードを取得したので20件限定でプレゼントします！</p>
<p><br/><br />
<strong>条件は<a href="http://www.facebook.com/pages/nipx-ニピクセル/237774372933144">ニピクセルのfacebookページ</a>にアクセスして「いいね」をしてくれた人。<br />
</strong></p>
<p>ニピクセルのfacebookページはこちらです。<br />
<a href="http://www.facebook.com/pages/nipx-ニピクセル/237774372933144 "><strong>facebook nipx-ニピクセル</strong></a></p>
<p><strong>「いいね」をしたら「ページオーナー」の「中村 耕介」のfacebookに切り替えてfacebookから「JUMPIN&#8217;maru プロモーションコード希望」とメッセージを送ってください。メッセージをもらったらこちらからプロモーションコードを返信します。</strong></p>
<p><strong>配布はニピクセルのfacebookページの「いいね」が25件になった時点で終了。つまり先着順、早い者勝ちです。また配布するプロモーションコードが無くなった場合も終了します。その他事情で予告無く終了する場合もあります。<br />
</strong></p>
<p><br/></p>
<p>なるべく早く返信したいと思いますが手作業での返信になるので返事が送れたらごめんなさい。</p>
<p>初めての試みなのでどうなるものか。好評なら他の有料アプリでもやりたいなと思いますけども。なお今なら「いいね」が25件を超えても待ち受けFlashを配布中なので是非。よろしくお願いします。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/11/jumpinmaru-%e3%83%97%e3%83%ad%e3%83%a2%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone&amp;iPadアプリ JUMPIN&#8217;maru</title>
		<link>http://blog.nipx.jp/2011/10/jumpinmaru/</link>
		<comments>http://blog.nipx.jp/2011/10/jumpinmaru/#comments</comments>
		<pubDate>Sat, 29 Oct 2011 02:36:47 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[nipx]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=5071</guid>
		<description><![CDATA[iPhone、iPadアプリを作りました。タッチ操作で星を集める子供向けのミニゲームです。 まるくなぞって操作するので子供がまるを書く練習になるかも。¥85の有料アプリですが是非！ ちなみにこのゲームの主人公の名前がその [...]]]></description>
			<content:encoded><![CDATA[<p>iPhone、iPadアプリを作りました。タッチ操作で星を集める子供向けのミニゲームです。<br />
まるくなぞって操作するので子供がまるを書く練習になるかも。¥85の有料アプリですが是非！</p>
<p>ちなみにこのゲームの主人公の名前がそのままズバリ「まる」です。今回新しく作ったキャラクターですがロゴとかFlower Rockとか今までの作品の流れを引き継いできている感じで気にいってる。白黒のイラストもキュートでしょ？このあたり僕の無茶苦茶な世界観を絵に落とし込んでくれたYさんに感謝です。まる、別の作品でもっと使って世界観を広げられたらいいなぁ。</p>
<p><a href="http://itunes.apple.com/jp/app/jumpinmaru/id475099401?mt=8&#038;uo=4" target="itunes_store"><img src="http://ax.phobos.apple.com.edgesuite.net/images/web/linkmaker/badge_appstore-lrg.gif" alt="JUMPIN'maru - nipx" style="border: 0;"/></a></p>
<p><a href="http://itunes.apple.com/jp/app/jumpinmaru/id475099401?mt=8&#038;uo=4" target="itunes_store"><br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/10/JUMPINmaru512.png" alt="" title="" width="512" height="512" class="aligncenter size-full wp-image-5072" /><br />
</a></p>
<p><a href="http://itunes.apple.com/jp/app/jumpinmaru/id475099401?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/10/JUMPINmaru1.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-5075" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/jumpinmaru/id475099401?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/10/JUMPINmaru2.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-5076" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/jumpinmaru/id475099401?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/10/JUMPINmaru3.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-5077" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/jumpinmaru/id475099401?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/10/JUMPINmaru4.png" alt="" title="" width="480" height="320" class="aligncenter size-full wp-image-5078" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/10/jumpinmaru/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>facebookで「いいね」して待ち受けFlashをダウンロード</title>
		<link>http://blog.nipx.jp/2011/10/facebook%e3%81%a7%e3%80%8c%e3%81%84%e3%81%84%e3%81%ad%e3%80%8d%e3%81%97%e3%81%a6%e5%be%85%e3%81%a1%e5%8f%97%e3%81%91flash%e3%82%92%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89/</link>
		<comments>http://blog.nipx.jp/2011/10/facebook%e3%81%a7%e3%80%8c%e3%81%84%e3%81%84%e3%81%ad%e3%80%8d%e3%81%97%e3%81%a6%e5%be%85%e3%81%a1%e5%8f%97%e3%81%91flash%e3%82%92%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89/#comments</comments>
		<pubDate>Sun, 23 Oct 2011 17:07:36 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[nipx]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=5055</guid>
		<description><![CDATA[nipx ニピクセル &#124; Facebook facebookで僕たちnipxを「いいね」してくれると、今までnipx Flash Wallpaper for Mobile Phoneで有料だったオリジナル待ち受けFlas [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ja-jp.facebook.com/pages/nipx-ニピクセル/237774372933144 "><img src="http://blog.nipx.jp/wp-content/uploads/2011/10/facebook.gif" alt="" title="" width="180" height="240" class="aligncenter size-full wp-image-5056" /></a></p>
<p><a href="http://ja-jp.facebook.com/pages/nipx-ニピクセル/237774372933144 ">nipx ニピクセル | Facebook</a></p>
<p>facebookで僕たちnipxを「いいね」してくれると、今まで<a href="http://wallpaper.nipx.jp/">nipx Flash Wallpaper for Mobile Phone</a>で有料だったオリジナル待ち受けFlashが無料でダウンロードできるようになりました。<br />
最近はまったく作れていないし、フィーチャーフォン自体急激に減ってきているので今のうちに少しでも作品を見てもらえたほうがね。facebookページは準備が出来てきたばかりで独自ドメインもまだとれていないので「いいね」してもらえると嬉しいです。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/10/facebook%e3%81%a7%e3%80%8c%e3%81%84%e3%81%84%e3%81%ad%e3%80%8d%e3%81%97%e3%81%a6%e5%be%85%e3%81%a1%e5%8f%97%e3%81%91flash%e3%82%92%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhoneアプリ えいごのれんしゅうちょう</title>
		<link>http://blog.nipx.jp/2011/07/iphone%e3%82%a2%e3%83%97%e3%83%aa-%e3%81%88%e3%81%84%e3%81%94%e3%81%ae%e3%82%8c%e3%82%93%e3%81%97%e3%82%85%e3%81%86%e3%81%a1%e3%82%87%e3%81%86/</link>
		<comments>http://blog.nipx.jp/2011/07/iphone%e3%82%a2%e3%83%97%e3%83%aa-%e3%81%88%e3%81%84%e3%81%94%e3%81%ae%e3%82%8c%e3%82%93%e3%81%97%e3%82%85%e3%81%86%e3%81%a1%e3%82%87%e3%81%86/#comments</comments>
		<pubDate>Sun, 24 Jul 2011 14:45:33 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[nipx]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=5026</guid>
		<description><![CDATA[アルファベットを練習するiPhoneアプリを作りました。リリース済みのひらがな、カタカナ、すうじを練習するアプリと同様の仕組みです。 ところでアルファベットには書き順が無いそうです。その文字に見えればいい。なんとも合理的 [...]]]></description>
			<content:encoded><![CDATA[<p>アルファベットを練習するiPhoneアプリを作りました。リリース済みのひらがな、カタカナ、すうじを練習するアプリと同様の仕組みです。</p>
<p><a href="http://itunes.apple.com/jp/app/id451038036?mt=8&#038;uo=4" target="itunes_store"><img src="http://ax.phobos.apple.com.edgesuite.net/images/web/linkmaker/badge_appstore-lrg.gif" alt="えいごのれんしゅうちょう - nipx" style="border: 0;"/></a></p>
<p><a href="http://itunes.apple.com/jp/app/id451038036?mt=8&#038;uo=4" target="itunes_store"><br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/07/icon512.png" alt="" title="" width="512" height="512" class="aligncenter size-full wp-image-5030" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/id451038036?mt=8&#038;uo=4" target="itunes_store"><br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/07/screenshot_00.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-5033" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/id451038036?mt=8&#038;uo=4" target="itunes_store"><br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/07/screenshot_01.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-5034" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/id451038036?mt=8&#038;uo=4" target="itunes_store"><br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/07/screenshot_02.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-5035" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/id451038036?mt=8&#038;uo=4" target="itunes_store"><br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/07/screenshot_03.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-5036" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/id451038036?mt=8&#038;uo=4" target="itunes_store"><br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/07/screenshot_04.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-5037" /></a></p>
<p>ところでアルファベットには書き順が無いそうです。その文字に見えればいい。なんとも合理的。そりゃそうだよねと思っちゃいます。<br />
その反面、書き順があって書道の文化まで浸透している日本語を見ると、なんとも日本人らしいというか、日本人で几帳面だなと思いますね。</p>
<p>とはいったものの、このシリーズのアプリは書き順に沿って練習する仕組みになっているので書き順が必要。そこで今回のアプリでは<a href="http://www.nintendo.co.jp/ds/angj/qanda/write.html">「アルファベットの一般的な書き順」</a>の書き順を採用しています。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/07/iphone%e3%82%a2%e3%83%97%e3%83%aa-%e3%81%88%e3%81%84%e3%81%94%e3%81%ae%e3%82%8c%e3%82%93%e3%81%97%e3%82%85%e3%81%86%e3%81%a1%e3%82%87%e3%81%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhoneアプリ YURAx2GIF</title>
		<link>http://blog.nipx.jp/2011/07/iphone%e3%82%a2%e3%83%97%e3%83%aa-yurax2gif/</link>
		<comments>http://blog.nipx.jp/2011/07/iphone%e3%82%a2%e3%83%97%e3%83%aa-yurax2gif/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 08:06:36 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[nipx]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=5005</guid>
		<description><![CDATA[ホワイトボードをイメージしたiPhone用らくがきアプリ「YURAx2GIF」をリリースしました。 無料アプリです。特徴はtwitterアカウントがあれば書いた落書きをゆらめくGIFアニメーションにしてtwitpicにア [...]]]></description>
			<content:encoded><![CDATA[<p>ホワイトボードをイメージしたiPhone用らくがきアプリ「YURAx2GIF」をリリースしました。<br />
無料アプリです。特徴はtwitterアカウントがあれば書いた落書きをゆらめくGIFアニメーションにしてtwitpicにアップロードできること。さらにアップロードしたtwitpicのURLをtwitterに共有できます。</p>
<p><a href="http://itunes.apple.com/jp/app/yurax2gif/id449585719?mt=8&#038;uo=4" target="itunes_store"><img src="http://ax.phobos.apple.com.edgesuite.net/images/web/linkmaker/badge_appstore-lrg.gif" alt="YURAx2GIF - nipx" style="border: 0;"/></a></p>
<p><a href="http://itunes.apple.com/jp/app/yurax2gif/id449585719?mt=8&amp;uo=4"><img src="http://blog.nipx.jp/wp-content/uploads/2011/07/iTunesArtwork.png" alt="" title="" width="512" height="512" class="aligncenter size-full wp-image-5008" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/yurax2gif/id449585719?mt=8&amp;uo=4"><img src="http://blog.nipx.jp/wp-content/uploads/2011/07/IMG_0218.png" alt="" title="" width="480" height="320" class="aligncenter size-full wp-image-5011" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/yurax2gif/id449585719?mt=8&amp;uo=4"><img src="http://blog.nipx.jp/wp-content/uploads/2011/07/IMG_0206.png" alt="" title="" width="480" height="320" class="aligncenter size-full wp-image-5013" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/yurax2gif/id449585719?mt=8&amp;uo=4"><img src="http://blog.nipx.jp/wp-content/uploads/2011/07/IMG_0209.png" alt="" title="" width="480" height="320" class="aligncenter size-full wp-image-5014" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/yurax2gif/id449585719?mt=8&amp;uo=4"><img src="http://blog.nipx.jp/wp-content/uploads/2011/07/IMG_0210.png" alt="" title="" width="480" height="320" class="aligncenter size-full wp-image-5015" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/yurax2gif/id449585719?mt=8&amp;uo=4"><img src="http://blog.nipx.jp/wp-content/uploads/2011/07/IMG_0211.png" alt="" title="" width="480" height="320" class="aligncenter size-full wp-image-5016" /></a></p>
<p>このアプリはAdobe air for iOSで作りました。Flashでシンボルを作って、Flash BuilderのActionScript モバイルプロジェクトで組み上げた形。当初はair 2.6で書き出していたのだけど、途中でair 2.7がリリースされた為、公開しているアプリはair 2.7で書き出しています。air 2.7になってiOSでのパフォーマンスもいい感じです。やっとという感じですけどair 2.7なら内容によってはiOSでも結構使えるんじゃないかと思いました。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/07/iphone%e3%82%a2%e3%83%97%e3%83%aa-yurax2gif/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ランタイム共有ライブラリのさらなるローディング方法</title>
		<link>http://blog.nipx.jp/2011/05/%e3%83%a9%e3%83%b3%e3%82%bf%e3%82%a4%e3%83%a0%e5%85%b1%e6%9c%89%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e3%81%ae%e3%81%95%e3%82%89%e3%81%aa%e3%82%8b%e3%83%ad%e3%83%bc%e3%83%87%e3%82%a3%e3%83%b3/</link>
		<comments>http://blog.nipx.jp/2011/05/%e3%83%a9%e3%83%b3%e3%82%bf%e3%82%a4%e3%83%a0%e5%85%b1%e6%9c%89%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e3%81%ae%e3%81%95%e3%82%89%e3%81%aa%e3%82%8b%e3%83%ad%e3%83%bc%e3%83%87%e3%82%a3%e3%83%b3/#comments</comments>
		<pubDate>Sat, 28 May 2011 11:33:50 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=4905</guid>
		<description><![CDATA[Adobeのヘルプからもリンクが貼られているブログ記事で、Using a Custom Preloader Loop With TLF Textというエントリーを読みました。 TLFテキストは符号付きRSLが用意されてい [...]]]></description>
			<content:encoded><![CDATA[<p>Adobeのヘルプからもリンクが貼られているブログ記事で、<a href="http://jeffkamerer.com/blog/2010/08/12/using-a-custom-preloader-loop-with-tlf-text/">Using a Custom Preloader Loop With TLF Text</a>というエントリーを読みました。</p>
<p>TLFテキストは符号付きRSLが用意されていますが、独自のプリローダーで読込もうとするといろいろなエラーが出てうまく読込めません。<br />
その対処法として、ActionScriptのクラスを書き出すフレームを2フレームにして、1フレーム目ではフレームスクリプトを記述し、RSLとSWF本体の読込みが完了したら2フレームに移動する方法が書かれています。1フレーム目にプリロードを持たせるってのは、昔からやってる人なら懐かしく思う方法なんじゃないでしょうか。</p>
<p>なるほど。そういう手もあるかと思いまして、前回のエントリでは、単体SWFでRSLを読込む時、Event.INITが発生するまで、SWF自身の容量を取得できませんでしたが、この方法ならいけるんじゃないかと。</p>
<p>しかも、先のページのサンプルだと、フレームスクリプトで、</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">this</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>RSLEvent.<span style="color: #006600;">RSL_LOAD_COMPLETE</span>, onRSLComplete<span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>なんて記述があって、えぇ?!そんなところでRSLの進行具合取れるの？と驚いたりもします。<br />
ということで試してみました。今度もまた入り組んでいてわかりにくいのですが。</p>
<p><br/></p>
<p><strong>1.SWZをカスタムプリローダーで読込んでエラーを確認</strong><br />
まずサンプルをそのまま試してみます。1フレームにTLFTextFieldを配置。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/TLFText_00.png" alt="" title="" width="500" height="459" class="aligncenter size-full wp-image-4937" /></p>
<p>ひとまずエラーを確認する為、クラスを書き出すフレームは1のままでカスタムプリローダーを使う設定だけします。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/TLFText_01.png" alt="" title="" width="466" height="662" class="aligncenter size-full wp-image-4938" /></p>
<p>パブリッシュ。Flash Player 10 &#038; 10.1をターゲットにしました。ご覧のようなエラー出る。コンパイル段階でも警告が出てます。そして1フレームに配置したTLFTextFieldが表示されません。このエラーはプリローダーを利用しない「コードにマージ」をした場合はもとい、デフォルトのプリローダーSWFを使った時は発生せず、TLFTextFieldも表示されることを確認しています。つまり、このエラーはカスタムプリローダーを設定したとき特有のもの。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/TLFText_02.png" alt="" title="" width="500" height="223" class="aligncenter size-full wp-image-4940" /></p>
<p><br/></p>
<p><strong>2.jeffkamerer.comのフレームスクリプトを入れて確認</strong><br />
次にjeffkamerer.comの方法でエラー解消を確認する。TLFTextFieldを2フレームに移動。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/TLFText_03.png" alt="" title="" width="500" height="313" class="aligncenter size-full wp-image-4943" /></p>
<p>クラスを書き出すフレームを2に変更。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/TLFText_04.png" alt="" title="" width="466" height="662" class="aligncenter size-full wp-image-4944" /></p>
<p>パブリッシュすると2フレームで無事TLFTextFieldが表示される。traceは以下の通り。</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">1:Frame Script Start
ProgressEvent.PROGRESS: 36092 36092
Event.COMPLETE: 36092 36092
RSLEvent.RSL_PROGRESS: 1208 186404
•
•
•
RSLEvent.RSL_PROGRESS: 186404 186404
RSLEvent.RSL_LOAD_COMPLETE: 0 0</pre></div></div>

<p>SWF自身のProgressEvent.PROGRESSが取得できている。SWF自身の読込みが完了してからRSLEvent.RSL_PROGRESSが動き始めているように見えるけど、これはSWFの容量が小さいからで、容量を大きくして、ダウンロードのシュミレートで見るとProgressEvent.PROGRESSとRSLEvent.RSL_PROGRESSは平行して実行されています。</p>
<p><br/></p>
<p><strong>3.通常のRSLを加えてみる</strong><br />
SWZのTLFを読込む確認ができたので、ここにRSLの読込みを加えてみる。前回のエントリーで使った、写真の枠のシンボル、PhotoTemplateをRSLに書き出したShare.swfを使います。<br />
まず、SWFのライブラリにPhotoTemplateをRSL読込み設定をする。そのシンボルを2フレームに配置しました。</p>
<p><img src="http://blog.nipx.jp/wp-content/uploads/2011/05/TLFText_05.png" alt="" title="" width="500" height="647" class="aligncenter size-full wp-image-4961" /></p>
<p>これをパブリッシュすれば2フレームに移動した後、Share.swfのRSLが表示されると思ったのですがダメでパブリッシュするとエラー。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/TLFText_06.png" alt="" title="" width="500" height="217" class="aligncenter size-full wp-image-4967" /></p>
<p>これなんだか意味不明なエラーなんですけど。エラーに関していえばこれに始まったことではなく他にも不思議なエラーいろいろ出ますので&#8230;。そもそもTLFが普通にカスタムプリローダーで読込めないって話自体、意味不明なわけでこの位で挫けていてはRSLは使えません。<br />
ここはひとまず、2フレームに配置したPhotoTemplateのインスタンスを削除します。そして前回同様、PhotoTemplateを入れ子にしたシンボル（PhotoContainer）をつくりActionScriptに書き出すとします。さらにこのままだと2フレームにPhotoTemplateは表示されないので、2フレームのフレームスクリプトでインスタンスを表示させるスクリプトを加えました。</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">import</span> share.<span style="color: #006600;">PhotoTemplate</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> photo:PhotoTemplate = <span style="color: #000000; font-weight: bold;">new</span> PhotoTemplate<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
photo.<span style="color: #006600;">x</span>	= <span style="color: #cc66cc;">250</span>;
photo.<span style="color: #006600;">y</span>	= <span style="color: #cc66cc;">300</span>;
addChild<span style="color: #66cc66;">&#40;</span> photo <span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>これでパブリッシュすると、エラーはでないのですが正しく動かない。1フレームから動かない状態になる。ブラウザでみるとShare.swfも読込んでいるし、trace結果はEvent.COMPLETEもRSLEvent.RSL_LOAD_COMPLETEも動いているのでgotoAndStop(2)が動かないという状況。ちなみに2フレーム目にいれたフレームスクリプトはこの不具合に関係ありません。消しても同様だった為。<br />
もうこのあたりから、何が仕様で、正しく動いているのか、バグなのか、こちらのエラーなのかわからなくなってくるのですが&#8230;。<br />
ひとまず解決策として、入れ子にしたPhotoContainerのActionScript書き出しで「2フレーム目に書き出し」のチェックを外します。</p>
<p><img src="http://blog.nipx.jp/wp-content/uploads/2011/05/TLFText_07.png" alt="" title="" width="500" height="544" class="aligncenter size-full wp-image-4974" /></p>
<p>パブリッシュすると、今度は2フレーム目まで動き、TLFTextFieldが表示されます。しかし、2フレーム目に書いたフレームスクリプトインスタンスを追加してもShare.swfのもつRSLが表示されません。ブラウザで確認してみるとShare.swfを読込んでいない状況です。</p>
<p><br/></p>
<p><strong>4.RSLPreloaderを加えてみる</strong><br />
3の結果からそれなら前回使ったRSLPreloaderを使ってあらかじめShare.swfを読込んだらどうだろうと思いました。<br />
その前に気になることがあります。1フレームに書いた以下のフレームスクリプトでSWZの読込みはイベントとして取得できています。</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">addEventListener<span style="color: #66cc66;">&#40;</span>RSLEvent.<span style="color: #006600;">RSL_PROGRESS</span>, onRSLProgress<span style="color: #66cc66;">&#41;</span>;
addEventListener<span style="color: #66cc66;">&#40;</span>RSLEvent.<span style="color: #006600;">RSL_LOAD_COMPLETE</span>, onRSLComplete<span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>だったら、通常のRSLも同じようにイベント取得できないか？<br />
試しに3の状態からTLFTextFieldを削除して、1フレームにPhotoTemplateを配置してみたのですが&#8230;。表示はされるもののイベントは取得できずでした。また前回と同じでEvent.INITが発生するまでSWF自身の容量がわかりません。</p>
<p><img src="http://blog.nipx.jp/wp-content/uploads/2011/05/TLFText_08.png" alt="" title="" width="500" height="151" class="aligncenter size-full wp-image-4982" /></p>
<p>更にPhotoContainerの「2フレーム目に書き出し」にチェックを入れた場合でも同様。この場合は2フレーム目に入らないのでShare.swfも読込まれないという状況です。</p>
<p>つまり、フレームスクリプトで書いた、</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">addEventListener<span style="color: #66cc66;">&#40;</span>RSLEvent.<span style="color: #006600;">RSL_PROGRESS</span>, onRSLProgress<span style="color: #66cc66;">&#41;</span>;
addEventListener<span style="color: #66cc66;">&#40;</span>RSLEvent.<span style="color: #006600;">RSL_LOAD_COMPLETE</span>, onRSLComplete<span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>で取得できるのは、SWZの場合のみのようです。SWZはユーザーがローカルへのキャッシュを許可していない場合、フェイルオーバー RSLという通常のRSLが代替えで読込まれますがこのRSLは上記のイベントで取得できました。（ややこしい。）</p>
<p>なので、符号付きRSLもRSLも読込む場合、符号付きRSLのプリロードは上記のイベントで取得し、RSLはRSLPreloaderでプリロードするってことになるんですかね？ともあれRSLPreloaderを試してみます。</p>
<p>RSLPreloaderでShare.swfを読込む。読込みの完了がどういう順で起きるかはわからないので、RSLPreloaderの完了フラグとしてpreCompleteを追加し、swfComplete と rslComplete をあわせて3つのフラグが処理されたらフレーム2に移動させる。</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">import</span> fl.<span style="color: #006600;">events</span>.<span style="color: #006600;">RSLEvent</span>;
<span style="color: #0066CC;">import</span> fl.<span style="color: #006600;">rsl</span>.<span style="color: #006600;">RSLInfo</span>;
<span style="color: #0066CC;">import</span> fl.<span style="color: #006600;">rsl</span>.<span style="color: #006600;">RSLPreloader</span>;
&nbsp;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">ProgressEvent</span>;
&nbsp;
<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;1:Frame Script Start&quot;</span> <span style="color: #66cc66;">&#41;</span>;
<span style="color: #0066CC;">stop</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> rslPreloader:RSLPreloader;
<span style="color: #000000; font-weight: bold;">var</span> info:RSLInfo
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> swfComplete:<span style="color: #0066CC;">Boolean</span> = <span style="color: #000000; font-weight: bold;">false</span>;
<span style="color: #000000; font-weight: bold;">var</span> rslComplete:<span style="color: #0066CC;">Boolean</span> = <span style="color: #000000; font-weight: bold;">false</span>;
<span style="color: #000000; font-weight: bold;">var</span> preComplete:<span style="color: #0066CC;">Boolean</span> = <span style="color: #000000; font-weight: bold;">false</span>;
&nbsp;
loaderInfo.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>ProgressEvent.<span style="color: #006600;">PROGRESS</span>, onProgress<span style="color: #66cc66;">&#41;</span>;
loaderInfo.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">INIT</span>, onInit<span style="color: #66cc66;">&#41;</span>;
loaderInfo.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">COMPLETE</span>, onComplete<span style="color: #66cc66;">&#41;</span>;
&nbsp;
addEventListener<span style="color: #66cc66;">&#40;</span>RSLEvent.<span style="color: #006600;">RSL_PROGRESS</span>, onRSLProgress<span style="color: #66cc66;">&#41;</span>;
addEventListener<span style="color: #66cc66;">&#40;</span>RSLEvent.<span style="color: #006600;">RSL_LOAD_COMPLETE</span>, onRSLComplete<span style="color: #66cc66;">&#41;</span>;
&nbsp;
rslPreloader= <span style="color: #000000; font-weight: bold;">new</span> RSLPreloader<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
info		= <span style="color: #000000; font-weight: bold;">new</span> RSLInfo<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
info.<span style="color: #006600;">addEntry</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">'Share.swf'</span> <span style="color: #66cc66;">&#41;</span>;
rslPreloader.<span style="color: #006600;">addRSLInfo</span><span style="color: #66cc66;">&#40;</span> info <span style="color: #66cc66;">&#41;</span>;
rslPreloader.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> RSLEvent.<span style="color: #006600;">RSL_PROGRESS</span>, onRslProgress <span style="color: #66cc66;">&#41;</span>;
rslPreloader.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> RSLEvent.<span style="color: #006600;">RSL_LOAD_COMPLETE</span>, onRslLoadComplete <span style="color: #66cc66;">&#41;</span>;
rslPreloader.<span style="color: #0066CC;">start</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
&nbsp;
<span style="color: #808080; font-style: italic;">//SWFのロード確認リスナー</span>
<span style="color: #000000; font-weight: bold;">function</span> onProgress<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:ProgressEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;ProgressEvent.PROGRESS:&quot;</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesLoaded</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> onInit<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;Event.INIT:&quot;</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">bytesLoaded</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> onComplete<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;Event.COMPLETE:&quot;</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">bytesLoaded</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
	loaderInfo.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span>ProgressEvent.<span style="color: #006600;">PROGRESS</span>, onProgress<span style="color: #66cc66;">&#41;</span>;
	loaderInfo.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">COMPLETE</span>, onComplete<span style="color: #66cc66;">&#41;</span>;
	swfComplete = <span style="color: #000000; font-weight: bold;">true</span>;
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>rslComplete <span style="color: #66cc66;">&amp;&amp;</span> swfComplete <span style="color: #66cc66;">&amp;&amp;</span> preComplete<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">gotoAndStop</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">//RSLのロード確認リスナー</span>
<span style="color: #000000; font-weight: bold;">function</span> onRSLProgress<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:RSLEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;RSLEvent.RSL_PROGRESS:&quot;</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesLoaded</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> onRSLComplete<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:RSLEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;RSLEvent.RSL_LOAD_COMPLETE:&quot;</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesLoaded</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
	removeEventListener<span style="color: #66cc66;">&#40;</span>RSLEvent.<span style="color: #006600;">RSL_PROGRESS</span>, onRSLProgress<span style="color: #66cc66;">&#41;</span>;
	removeEventListener<span style="color: #66cc66;">&#40;</span>RSLEvent.<span style="color: #006600;">RSL_LOAD_COMPLETE</span>, onRSLComplete<span style="color: #66cc66;">&#41;</span>;
	rslComplete = <span style="color: #000000; font-weight: bold;">true</span>;
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>rslComplete <span style="color: #66cc66;">&amp;&amp;</span> swfComplete <span style="color: #66cc66;">&amp;&amp;</span> preComplete<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">gotoAndStop</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">//RSLPreloaderのロード確認リスナー</span>
<span style="color: #000000; font-weight: bold;">function</span> onRslProgress<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">e</span>:RSLEvent <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;RSLPreloader RSL_PROGRESS:&quot;</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesLoaded</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> onRslLoadComplete<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">e</span>:RSLEvent <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
	rslPreloader.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span>RSLEvent.<span style="color: #006600;">RSL_PROGRESS</span>, onRslProgress<span style="color: #66cc66;">&#41;</span>;
	rslPreloader.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span>RSLEvent.<span style="color: #006600;">RSL_LOAD_COMPLETE</span>, onRslLoadComplete<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;RSLPreloader RSL_LOAD_COMPLETE:&quot;</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesLoaded</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
	preComplete = <span style="color: #000000; font-weight: bold;">true</span>;
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>rslComplete <span style="color: #66cc66;">&amp;&amp;</span> swfComplete <span style="color: #66cc66;">&amp;&amp;</span> preComplete<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">gotoAndStop</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>これでやっと期待どおりに動いた。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/TLFText_09.png" alt="" title="" width="500" height="500" class="aligncenter size-full wp-image-4991" /></p>
<p>traceを確認すると以下でした。</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">1:Frame Script Start
Event.INIT: 17931 17931
ProgressEvent.PROGRESS: 17931 17931
Event.COMPLETE: 17931 17931
RSLPreloader RSL_PROGRESS: 1024 3613
・
・
RSLPreloader RSL_PROGRESS: 3613 3613
RSLPreloader RSL_LOAD_COMPLETE: 0 0
RSLEvent.RSL_PROGRESS: 1208 186404
・
・
RSLEvent.RSL_LOAD_COMPLETE: 0 0</pre></div></div>

<p>Progressが順番に並んで発生していますが、これもダウンロードのシュミレートで確認するとバラバラに発生するので、読込みが完了する順番は必ずしも一定ではありません。</p>
<p><br/><br />
さて、これで完璧と思ったのですが落とし穴が他にもありました。<br />
それはドキュメントクラス。この状態でドキュメントクラスを設定しました。内容は以下。</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package sample<span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #0066CC;">MovieClip</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Sample2 <span style="color: #0066CC;">extends</span> <span style="color: #0066CC;">MovieClip</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Sample2<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;Document Class Sample1&quot;</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>コンストラクタでトレースを吐いている以外、何もしていません。<br />
さて、この「クラスを書き出すフレーム」を2フレームに設定したflaファイルで、ドキュメントクラスを設定した場合、コンストラクタのトレースはいつ実行されるでしょうか？</p>
<p><img src="http://blog.nipx.jp/wp-content/uploads/2011/05/TLFText_10.png" alt="" title="" width="500" height="183" class="aligncenter size-full wp-image-4997" /></p>
<p>確認してみると、一番最初。1フレームのフレームスクリプトでtraceしている「1:Frame Script Start」よりも前に実行されます。<br />
そのドキュメントのコンストラクタってことだから、冷静に考えるとこれでいいような気もしますが、「クラスを書き出すフレーム」との整合性がわかりにくいです。しかも、このドキュメントクラスを設定すると、これまた正しく2フレームに移動しません&#8230;。<br />
traceを確認すると</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">rslPreloader.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> RSLEvent.<span style="color: #006600;">RSL_PROGRESS</span>, onRslProgress <span style="color: #66cc66;">&#41;</span>;
addEventListener<span style="color: #66cc66;">&#40;</span>RSLEvent.<span style="color: #006600;">RSL_LOAD_COMPLETE</span>, onRSLComplete<span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>のイベントのRSLEvent.RSL_LOAD_COMPLETEが戻ってきていないのでこれが原因のようなのですが、解決策的にはRSLEvent.RSL_PROGRESSの完了で判定してもダメで、（VerifyError: Error #1014: クラス flashx.textLayout.container::TextContainerManager が見つかりません。となる。）<br />
今のところ解決策的にはドキュメントクラスを使わず、コンテナとなるインスタンスを2フレームで追加する方法。</p>
<p>こんな感じで、コンテナとなるクラスを作って、</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package sample<span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
	<span style="color: #0066CC;">import</span> share.<span style="color: #006600;">PhotoTemplate</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">/** 2フレームで追加されコンテナとなるクラス。 */</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Container <span style="color: #0066CC;">extends</span> Sprite<span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Container<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> photo:PhotoTemplate = <span style="color: #000000; font-weight: bold;">new</span> PhotoTemplate<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			photo.<span style="color: #006600;">x</span>	= <span style="color: #cc66cc;">250</span>;
			photo.<span style="color: #006600;">y</span>	= <span style="color: #cc66cc;">300</span>;
			addChild<span style="color: #66cc66;">&#40;</span> photo <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>2フレームのフレームスクリプトで配置する。</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">import</span> sample.<span style="color: #006600;">Container</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> container = <span style="color: #000000; font-weight: bold;">new</span> Container<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
addChild<span style="color: #66cc66;">&#40;</span> container <span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>これだとうまくいっているけど&#8230;。僕はよくProgressionを使っているので、ドキュメントクラスを使えないのはいたいな。<br />
やはり一筋なわではいかないか。RSL。</p>
<p><br/></p>
<p>蛇足ですが、キャッシュされたSWZは、それぞれ以下にあります。</p>
<p>Windows 95/98/ME/2000/XP<br />
C:¥Documents and Settings¥user_name¥Application Data¥Adobe¥Flash Player¥AssetCache¥</p>
<p>Windows Vista<br />
C:¥Users¥user_name¥AppData¥Roaming¥Adobe¥Flash Player¥AssetCache¥</p>
<p>Linux<br />
/home/user_name/.adobe/Flash_Player/AssetCache/</p>
<p>Mac OSX<br />
/Users/user_name/Library/Cache/Adobe/Flash Player/AssetCache/</p>
<p>キャッシュを消して読込みを確認するには上記ディレクトリの中のファイルを削除します。<br />
またSWZではなく、フェイルオーバー RSLを試すには、<br />
<a href="http://www.macromedia.com/support/documentation/jp/flashplayer/help/settings_manager03.html">Adobe &#8211; Flash Player : 設定マネージャー &#8211; グローバルストレージ設定パネル</a><br />
で、共通のFlashコンポーネントを格納して、ダウンロード回数を削減しますのチェックを外したり、記憶容量を0にするなどすると確認出来ました。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/05/%e3%83%a9%e3%83%b3%e3%82%bf%e3%82%a4%e3%83%a0%e5%85%b1%e6%9c%89%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e3%81%ae%e3%81%95%e3%82%89%e3%81%aa%e3%82%8b%e3%83%ad%e3%83%bc%e3%83%87%e3%82%a3%e3%83%b3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ランタイム共有ライブラリを調べる</title>
		<link>http://blog.nipx.jp/2011/05/%e3%83%a9%e3%83%b3%e3%82%bf%e3%82%a4%e3%83%a0%e5%85%b1%e6%9c%89%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e3%82%92%e8%aa%bf%e3%81%b9%e3%82%8b/</link>
		<comments>http://blog.nipx.jp/2011/05/%e3%83%a9%e3%83%b3%e3%82%bf%e3%82%a4%e3%83%a0%e5%85%b1%e6%9c%89%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e3%82%92%e8%aa%bf%e3%81%b9%e3%82%8b/#comments</comments>
		<pubDate>Fri, 27 May 2011 08:11:51 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=4847</guid>
		<description><![CDATA[Flashには「ランタイム共有ライブラリ（RSL）」という機能がある。 これはAS2のころからある機能でSWFの実行時にあるSWFがもつライブラリを他のSWFから利用するもの。 たとえば、A.swfでもB.swfでも利用 [...]]]></description>
			<content:encoded><![CDATA[<p>Flashには「ランタイム共有ライブラリ（RSL）」という機能がある。<br />
これはAS2のころからある機能でSWFの実行時にあるSWFがもつライブラリを他のSWFから利用するもの。<br />
たとえば、A.swfでもB.swfでも利用するシンボルをShare.swfでRSLとして登録し、実行時に参照する。<br />
するとA.swfとB.swfは自身のライブラリに同じシンボルのデータを持つ必要がなくなり、結果的にファイル容量が軽量化しダウンロードにかかる時間が短縮されたり、一意に修正をすることが出来たりするわけです。</p>
<p>便利そうな機能なのだけど、これが以外に使われない。RSLにすることで、（単一ファイルではありえない）読込みエラーなどが発生する機会が増えるなど構造的なデメリットもあるのだけど、一番の理由は読込みのタイミングがうまく制御できないからではないかと思っている。制御に関してはっきり挙動がわかる資料が無かった。最近は事情が変わってきて、RSLを進化させFlashPlayerにキャッシュするアドビ公式のランタイム共有ライブラリとでも言おうか。符号付きRSLであるSWZ形式のファイルが登場しRSL読込み用のクラスなども実装されてきた。</p>
<p>しかし、昔RSLを試したことあるけど&#8230;って方は鼻っからRSL使い物になる？と疑念もあってあまり関心がなかったりしないだろうか。（←早い話、僕。）そこで実際仕事で使いたかったって事情もあり調べてみた。</p>
<p><br/></p>
<p>例として下のような、フチあり写真のようなシンボルがあり、このシンボルをRSLとして他のSWFから使うものとします。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_00.png" alt="" title="" width="500" height="500" class="aligncenter size-full wp-image-4851" /></p>
<p>ランタイム共有用に書き出しをチェックして、SWFを書き出します。SWFはShare.swfとしました。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_01.png" alt="" title="" width="500" height="544" class="aligncenter size-full wp-image-4857" /></p>
<p>RSLを利用する側のRSLTest1.flaではRSLの読込みを設定します。挿入→新規シンボルで空のシンボルを作り、ランタイム共有用に読込みをチェック。URLにShare.swfを指定します。（今回の場合、RSLTest1.flaを書き出したSWFとShare.swfは同じディレクトリに配置します。）<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_02.png" alt="" title="" width="500" height="544" class="aligncenter size-full wp-image-4860" /></p>
<p>ここでは「いいえ」で。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_03.png" alt="" title="" width="494" height="119" class="aligncenter size-full wp-image-4861" /></p>
<p>タイムラインに適当に配置してみる。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_04.png" alt="" title="" width="500" height="382" class="aligncenter size-full wp-image-4863" /></p>
<p>パブリッシュ。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_05.png" alt="" title="" width="500" height="500" class="aligncenter size-full wp-image-4864" /></p>
<p>これでRSLに書き出したシンボルを読込み、表示するまでの確認ができました。<br />
今はタイムラインに配置していますがクラスベースで開発する時は、通常インスタンスはスクリプトで制御して表示します。そこでタイムラインに配置したシンボルはすべて削除してドキュメントクラスからRSLを使う場合の検証をしました。</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package rsl<span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #0066CC;">MovieClip</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">ProgressEvent</span>;
	<span style="color: #0066CC;">import</span> share.<span style="color: #006600;">PhotoTemplate</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> RSLTest1 <span style="color: #0066CC;">extends</span> <span style="color: #0066CC;">MovieClip</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> RSLTest1<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			loaderInfo.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> Event.<span style="color: #006600;">OPEN</span>, onOpen <span style="color: #66cc66;">&#41;</span>;
			loaderInfo.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> ProgressEvent.<span style="color: #006600;">PROGRESS</span>, onProgress <span style="color: #66cc66;">&#41;</span>;
			loaderInfo.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> Event.<span style="color: #006600;">INIT</span>, onInit <span style="color: #66cc66;">&#41;</span>;
			loaderInfo.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> Event.<span style="color: #006600;">COMPLETE</span>, onComplete <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onOpen<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;RSLTest1 OPEN:&quot;</span>, loaderInfo.<span style="color: #0066CC;">bytesLoaded</span>, loaderInfo.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onProgress<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:ProgressEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;RSLTest1 PROGRESS:&quot;</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesLoaded</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onInit<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">e</span>:Event <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;RSLTest1 INIT:&quot;</span>, loaderInfo.<span style="color: #0066CC;">bytesLoaded</span>, loaderInfo.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
			<span style="color: #000000; font-weight: bold;">var</span> temp:PhotoTemplate = <span style="color: #000000; font-weight: bold;">new</span> PhotoTemplate<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span> temp <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onComplete<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">e</span>:Event <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;RSLTest1 COMPLETE:&quot;</span>, loaderInfo.<span style="color: #0066CC;">bytesLoaded</span>, loaderInfo.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>ドキュメントクラスのSWF（RSLTest1.swf）のloaderInfoを監視しアクセス可能（Event.INIT）となったらPhotoTemplateのインスタンスを生成し表示リストに加える。表示されましたか？この検証では表示されませんでした。<br />
traceは以下になっています。</p>
<p><img src="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_09.png" alt="" title="" width="500" height="151" class="aligncenter size-full wp-image-4879" /></p>
<p>Safariの構成ファイルなど読込んでいるファイルが見えるもので確認するとわかるのですがそもそもShare.swfが読込まれていません。</p>
<p><img src="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_06.png" alt="" title="" width="430" height="129" class="aligncenter size-full wp-image-4874" /></p>
<p>ランタイム共有用に読込みのシンボルはActionScript用に書き出しがチェックできない為、タイムラインに配置なしだとコンパイルに含まれないのだと思われます。そこでPhotoTemplateを含むシンボルを生成してActionScript用に書き出しをチェックしてみます。</p>
<p><a href="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_07.png"><img src="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_07.png" alt="" title="RSLTest_07" width="500" height="706" class="aligncenter size-full wp-image-4872" /></a></p>
<p>今度はShare.swfは読込まれ、PhotoTemplateのインスタンスも表示されました。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_08.png" alt="" title="" width="430" height="129" class="aligncenter size-full wp-image-4875" /></p>
<p>しかし、今回はtraceは妙な出力をしています。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_10.png" alt="" title="" width="500" height="151" class="aligncenter size-full wp-image-4880" /></p>
<p>ProgressEvent.PROGRESSとEvent.COMPLETEが返ってこない。</p>
<p>ちなみにActionScript用に書き出しをやめて、先ほどのタイムラインに配置した状態でこのドキュメントクラスを使った場合も、PhotoTemplateのインスタンスは表示されますがProgressEvent.PROGRESSとEvent.COMPLETEが返ってきません。</p>
<p>ここまでの様子をまとめると、ランタイム共有ライブラリが読込まれる場合、そのドキュメントクラスでは、</p>
<p>・ProgressEvent.PROGRESSとEvent.COMPLETEは返ってこない。<br />
・Event.INIT以降、ランタイム共有ライブラリにアクセス可能。<br />
・loaderInfoのbytesLoadedとbytesTotalに、ランタイム共有ライブラリのSWFのファイルの容量は含まれない。</p>
<p>ものと思われる。<br />
とすると、Flashで開発する場合にランタイム共有ライブラリを使うなら、RSLを読込むSWF単体にそれぞれについては、初期化時のEvent.INITを起点に開発することさえ気をつければ問題なさそうに思います。</p>
<p>しかしこのままだとRSLTest1.swfはEvent.INITがくるまで何のアクションもなく待ち続けることになる。そこでRSLTest1.swfとShare.swfの読込みを管理する為のプリローダー（Preloader1.swf）を考えてみる。</p>
<p>まず、RSLの読込みに使えるクラスがある。</p>
<p><a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/fl/rsl/RSLPreloader.html?filter_flash=cs5&#038;filter_flashplayer=10.2&#038;filter_air=2.6">RSLPreloader</a></p>
<p>RSLPreloaderは、SWZも含めてRSLのプリロードを管理するクラス。<br />
Preloader1.swfがShare.swfのRSLをライブラリに読込んでいると意味がないのでPreloader1.swfではRSLを利用しないこと。</p>
<p>ちなみにActionScript用に書き出しがない状態でRSLを読込んでいる場合（ドキュメントクラスを使った最初の検証の場合）、RSLTest1.swfでRSLPreloaderクラスを使ってローディングしてもうまくいく。</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package rsl<span style="color: #66cc66;">&#123;</span>
&nbsp;
&nbsp;
	<span style="color: #0066CC;">import</span> fl.<span style="color: #006600;">events</span>.<span style="color: #006600;">RSLErrorEvent</span>;
	<span style="color: #0066CC;">import</span> fl.<span style="color: #006600;">events</span>.<span style="color: #006600;">RSLEvent</span>;
	<span style="color: #0066CC;">import</span> fl.<span style="color: #006600;">rsl</span>.<span style="color: #006600;">RSLInfo</span>;
	<span style="color: #0066CC;">import</span> fl.<span style="color: #006600;">rsl</span>.<span style="color: #006600;">RSLPreloader</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Loader</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">ProgressEvent</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">net</span>.<span style="color: #006600;">URLRequest</span>;
&nbsp;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Preloader1 <span style="color: #0066CC;">extends</span> Sprite<span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> rslPreloader:RSLPreloader;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> loader:Loader;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Preloader1<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			rslPreloader 			= <span style="color: #000000; font-weight: bold;">new</span> RSLPreloader<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #000000; font-weight: bold;">var</span> info:RSLInfo	= <span style="color: #000000; font-weight: bold;">new</span> RSLInfo<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			info.<span style="color: #006600;">addEntry</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">'Share.swf'</span> <span style="color: #66cc66;">&#41;</span>;
			rslPreloader.<span style="color: #006600;">addRSLInfo</span><span style="color: #66cc66;">&#40;</span> info <span style="color: #66cc66;">&#41;</span>;
			rslPreloader.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> RSLErrorEvent.<span style="color: #006600;">RSL_LOAD_FAILED</span>, onRslLoadFailed <span style="color: #66cc66;">&#41;</span>;
			rslPreloader.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> RSLEvent.<span style="color: #006600;">RSL_PROGRESS</span>, onRslProgress <span style="color: #66cc66;">&#41;</span>;
			rslPreloader.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> RSLEvent.<span style="color: #006600;">RSL_LOAD_COMPLETE</span>, onRslLoadComplete <span style="color: #66cc66;">&#41;</span>;
			rslPreloader.<span style="color: #0066CC;">start</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			loader	= <span style="color: #000000; font-weight: bold;">new</span> Loader<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span> loader <span style="color: #66cc66;">&#41;</span>;
			loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> Event.<span style="color: #006600;">OPEN</span>, onOpen <span style="color: #66cc66;">&#41;</span>;
			loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> ProgressEvent.<span style="color: #006600;">PROGRESS</span>, onProgress <span style="color: #66cc66;">&#41;</span>;
			loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> Event.<span style="color: #006600;">INIT</span>, onInit <span style="color: #66cc66;">&#41;</span>;
			loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> Event.<span style="color: #006600;">COMPLETE</span>, onComplete <span style="color: #66cc66;">&#41;</span>;
			loader.<span style="color: #0066CC;">load</span><span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> URLRequest<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;RSLTest1.swf&quot;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onRslLoadFailed<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">e</span>:RSLErrorEvent <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;RSL_LOAD_FAILED:&quot;</span>  <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onRslProgress<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">e</span>:RSLEvent <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;RSL_PROGRESS:&quot;</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesLoaded</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onRslLoadComplete<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">e</span>:RSLEvent <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;RSL_LOAD_COMPLETE:&quot;</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesLoaded</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onOpen<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Preloader1 OPEN:&quot;</span>, loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #0066CC;">bytesLoaded</span>, loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onProgress<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:ProgressEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Preloader1 PROGRESS:&quot;</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesLoaded</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onInit<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Preloader1 INIT:&quot;</span>, loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #0066CC;">bytesLoaded</span>, loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onComplete<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Preloader1 COMPLETE:&quot;</span>, loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #0066CC;">bytesLoaded</span>, loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>trace出力は以下だ。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_11.png" alt="" title="" width="500" height="282" class="aligncenter size-full wp-image-4889" /></p>
<p>Share.swfのプログレスが取得できていることと、RSLTest1.swfのプログレスも取得できていることが確認できる。<br />
さらにRSLTest1.swf単体だと動かなかった、Event.COMPLETEも無事動いている。</p>
<p>RSLPreloaderは、APIドキュメントではランタイム10.1以上ってことなんだけどどうなんだろう。サンプルはPlayer 9書き出しにして、Player 9（9.0.47.0）で見てみましたが動いていますね。。。SWZとか完全に動かないよってことなのかな。</p>
<p>他にFlex SDKで、<br />
<a href="http://livedocs.adobe.com/flex/3_jp/langref/mx/preloaders/Preloader.html<br />
">Preloader</a>と<a href="http://livedocs.adobe.com/flex/3_jp/langref/mx/preloaders/DownloadProgressBar.html">DownloadProgressBar</a><br />
を使う方法も試した。この方法でもうまく読込めます。</p>
<p>Preloader2.as</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package rsl<span style="color: #66cc66;">&#123;</span>
&nbsp;
&nbsp;
	<span style="color: #0066CC;">import</span> fl.<span style="color: #006600;">rsl</span>.<span style="color: #006600;">RSLInfo</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Loader</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">ProgressEvent</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">net</span>.<span style="color: #006600;">URLRequest</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">preloaders</span>.<span style="color: #006600;">Preloader</span>;
&nbsp;
&nbsp;
&nbsp;
	<span style="color: #808080; font-style: italic;">/** RSLの読込みをFlexのPreloaderで行ってみる。 */</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Preloader2 <span style="color: #0066CC;">extends</span> Sprite<span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> rslPreloader:Preloader
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> info:RSLInfo
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> loader:Loader;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Preloader2<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			rslPreloader	= <span style="color: #000000; font-weight: bold;">new</span> Preloader<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span> rslPreloader <span style="color: #66cc66;">&#41;</span>;
			rslPreloader.<span style="color: #006600;">initialize</span><span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">true</span>, CustomProgressBar, 0x000000, <span style="color: #cc66cc;">1</span>, <span style="color: #000000; font-weight: bold;">null</span>, <span style="color: #ff0000;">&quot;&quot;</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #66cc66;">&#91;</span> <span style="color: #ff0000;">&quot;Share.swf&quot;</span> <span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#41;</span>;
&nbsp;
			loader	= <span style="color: #000000; font-weight: bold;">new</span> Loader<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span> loader <span style="color: #66cc66;">&#41;</span>;
			loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> Event.<span style="color: #006600;">OPEN</span>, onOpen <span style="color: #66cc66;">&#41;</span>;
			loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> ProgressEvent.<span style="color: #006600;">PROGRESS</span>, onProgress <span style="color: #66cc66;">&#41;</span>;
			loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> Event.<span style="color: #006600;">INIT</span>, onInit <span style="color: #66cc66;">&#41;</span>;
			loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> Event.<span style="color: #006600;">COMPLETE</span>, onComplete <span style="color: #66cc66;">&#41;</span>;
			loader.<span style="color: #0066CC;">load</span><span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> URLRequest<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;RSLTest1.swf&quot;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onOpen<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Preloader1 OPEN:&quot;</span>, loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #0066CC;">bytesLoaded</span>, loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onProgress<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:ProgressEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Preloader1 PROGRESS:&quot;</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesLoaded</span>, <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onInit<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Preloader1 INIT:&quot;</span>, loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #0066CC;">bytesLoaded</span>, loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onComplete<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Preloader1 COMPLETE:&quot;</span>, loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #0066CC;">bytesLoaded</span>, loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Preloaderから利用するProgressBarを用意。DownloadProgressBarを継承して各メソッドを上書きすればよい。</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package rsl<span style="color: #66cc66;">&#123;</span>
&nbsp;
&nbsp;
	<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">events</span>.<span style="color: #006600;">RSLEvent</span>;
	<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">preloaders</span>.<span style="color: #006600;">DownloadProgressBar</span>;
&nbsp;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> CustomProgressBar <span style="color: #0066CC;">extends</span> DownloadProgressBar<span style="color: #66cc66;">&#123;</span>
&nbsp;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> CustomProgressBar<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
		protected override <span style="color: #000000; font-weight: bold;">function</span> rslProgressHandler<span style="color: #66cc66;">&#40;</span>event:RSLEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;rslProgressHandler:&quot;</span>, event.<span style="color: #0066CC;">bytesLoaded</span>, event.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
		protected override <span style="color: #000000; font-weight: bold;">function</span> rslCompleteHandler<span style="color: #66cc66;">&#40;</span>event:RSLEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;rslCompleteHandler&quot;</span>, event.<span style="color: #0066CC;">bytesLoaded</span>, event.<span style="color: #0066CC;">bytesTotal</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>trace出力はこんな感じ。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_12.png" alt="" title="" width="500" height="282" class="aligncenter size-full wp-image-4898" /></p>
<p>一応、このプリローダーからRSLとRSLを使うSWFを読込む方法なら、読込みのタイミングを処理できるんじゃないかと思う。<br />
一応としているのは、SWZでないRSL、つまりユーザーが自由につくれるRSLはプレイヤーにはキャッシュされない。キャッシュされるのはブラウザのキャッシュであるということ。この当たりを読むとわかる。</p>
<p><a href="http://www.adobe.com/jp/devnet/flex/articles/flash_player_cache_02.html">Flash Playerキャッシュの使用によるFlexアプリケーション性能の改善</a><br />
<a href="http://livedocs.adobe.com/flex/3_jp/html/help.html?content=rsl_09.html">フレームワーク RSL の使用</a></p>
<p>ってことはやっぱり上のプリローダーを使った場合も、RSLPreloaderを先に処理しても、RSLTest1.swfを読込んだ後、RSLTest1.swfがRSLをリクエストするんじゃないかと。実際Safariの構成ファイルを見ると2度Share.swfが読込まれているので。2回目はキャッシュを参照するから瞬間的に読込まれるものと思われるけど、キャッシュを消していたら読込みに時間がかかるんじゃないかなと思っている。これはもうしょうがないんじゃないかと思う。サイト全体としてキャッシュ消された時の対策までを考えるなら、あるSWFを読込む時、そのSWFがRSLを利用しているものならRSLPreloaderで毎回プリロードかけるとか、プログレス表示なしでいいならEvent.INITを待つとか&#8230;。やっぱり今もRSLを使うことで手間になることはあると思う。</p>
<p><br/></p>
<p>さてそんなRSLですが調べるきっかけとなった状況がありました。僕が直面したのは仕事で16ファイルのSWFを作る時。この16ファイルには共通するシンボルがあるのだけれど、モック段階から進めて作っていく為、アップデートを重ねる度にシンボルを16のflaファイル変更しなくちゃいけない。この時はオーサタイム共有ライブラリにして対応したので差し替えは半自動的に行っていたのですが、それでも16ファイルパブリッシュするとかってばからしいじゃない。試行錯誤の段階においては。<br />
この時は結局RSLは使わなかったのですが、今度同じような時があったらRSLが使えるか調べておこうと思いました。<br />
Flashで作るならアプリケーションで素早くデザインが見える・作れるというのが利点なので、最後にこの利点を踏まえてRSLの使い方を自分なりにまとめておきたい。</p>
<p>この記事では最初にPhotoTemplateというシンボルをShare.swfに作り、RSLTest1.swfでは空のシンボルを作ってRSL読込みの設定をしましたが、空のシンボルである必要はありません。なので、サイズは固定されているけど、中身の要素やデザインは変わっていくなんて時には途中段階のデザインでシンボルにし、RSL読込みを設定、最新のデザインはRSLから読込まれるようにしておくという方法が便利かと思いました。</p>
<p><br/></p>
<p>先ほど作ったPhotoTemplateシンボルを編集する。今回は「はい」として一旦、RSL読込み設定を解除。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_03.png" alt="" title="" width="494" height="119" class="aligncenter size-full wp-image-4861" /></p>
<p>その時点の仮デザインを入れる。入れ子のシンボルなどに使う場合、仮のデザインでも有無でこの後の作業の進み具合が全然違ってくるものです。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_13.png" alt="" title="" width="500" height="437" class="aligncenter size-full wp-image-4910" /></p>
<p>RSL読込みがはずれていますので再設定。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_14.png" alt="" title="" width="500" height="544" class="aligncenter size-full wp-image-4912" /></p>
<p>そのシンボルをステージにおいてパブリッシュしてみると、きちんとShare.swfが書き出しているRSLで表示されます。<br />
<img src="http://blog.nipx.jp/wp-content/uploads/2011/05/RSLTest_15.png" alt="" title="" width="500" height="500" class="aligncenter size-full wp-image-4913" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/05/%e3%83%a9%e3%83%b3%e3%82%bf%e3%82%a4%e3%83%a0%e5%85%b1%e6%9c%89%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e3%82%92%e8%aa%bf%e3%81%b9%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone アプリ・クリエイターズファイル［2011-2012］</title>
		<link>http://blog.nipx.jp/2011/05/iphone-%e3%82%a2%e3%83%97%e3%83%aa%e3%83%bb%e3%82%af%e3%83%aa%e3%82%a8%e3%82%a4%e3%82%bf%e3%83%bc%e3%82%ba%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%ef%bc%bb2011-2012%ef%bc%bd/</link>
		<comments>http://blog.nipx.jp/2011/05/iphone-%e3%82%a2%e3%83%97%e3%83%aa%e3%83%bb%e3%82%af%e3%83%aa%e3%82%a8%e3%82%a4%e3%82%bf%e3%83%bc%e3%82%ba%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%ef%bc%bb2011-2012%ef%bc%bd/#comments</comments>
		<pubDate>Mon, 23 May 2011 03:14:05 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[nipx]]></category>
		<category><![CDATA[Works]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=4835</guid>
		<description><![CDATA[6月7日発売の「iPhone アプリ・クリエイターズファイル［2011-2012］」という書籍で取り上げていただきました。ありがとうございます。書籍の情報を頂きましたので掲載します。 「iPhone アプリ・クリエイター [...]]]></description>
			<content:encoded><![CDATA[<p>6月7日発売の「iPhone アプリ・クリエイターズファイル［2011-2012］」という書籍で取り上げていただきました。ありがとうございます。書籍の情報を頂きましたので掲載します。</p>
<p><a href="http://www.amazon.co.jp/dp/4798123595/"><img src="http://blog.nipx.jp/wp-content/uploads/2011/05/app_book.jpg" alt="" title="" width="450" height="640" class="aligncenter size-full wp-image-4836" /></a></p>
<p>「iPhone アプリ・クリエイターズファイル［2011-2012］」</p>
<p>著者：馬渡徹郎／<a href="http://www.d-force.com/">ディーフォース株式会社</a><br />
価格：1,985円（税込）<br />
仕様：176ページ／フルカラー<br />
刊行日：2011年6月7日<br />
ISBN：978-4-7981-2359-2</p>
<p>日本発！iPhoneアプリ制作者厳選160組一挙掲載！<br />
トップクリエイター10組が成功するアプリの秘訣、教えます。</p>
<p>本書は3部構成になっています。<br />
Part1では、大ヒットアプリを生み出した制作者へのインタビューです。実際の制作者に「企画段階のコツ」「開発段階のコツ」「プロモーションのコツ」、さらに「売上」についてなど、読者が聞きたいところをお聞きします。<br />
Part2では、人気アプリを生み出した制作者を厳選160組紹介します。<br />
最後のPart3では、基本となる開発から公開の流れ、また企業向けに発注の流れ、さらに運営面でのポイントも解説します。</p>
<p>◎Part1「iPhoneアプリ制作者インタビュー」<br />
～大ヒットアプリはこうして生まれた！～<br />
・Junpei Wada　「FingerPiano」<br />
・オトバンク　「朗読少女」<br />
・パンカク　「LightBike」<br />
・APPARE JAPAN　「FingerSports」<br />
・物書堂　「大辞林」<br />
・Soohyun Park &#038; Hiroaki Sato　「カロリー管理」<br />
・Art &#038; Mobile　「ToyCamera」<br />
・安田陽介　「カード類」<br />
・美人時計　「美人時計」<br />
・APPLIYA STUDIO　「赤ちゃん泣き止み音!」</p>
<p>◎Part2「iPhoneアプリ制作者リスト」<br />
～厳選160組のアプリクリエイター紹介～</p>
<p>◎Part3「iPhoneアプリ制作のノウハウ」<br />
～アプリの企画から運用サポートまで～</p>
<p>amazonでのご予約・ご購入はこちらから↓<br />
<a href="http://www.amazon.co.jp/dp/4798123595/">http://www.amazon.co.jp/dp/4798123595/</a></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
制作者リストの他、有名どころアプリ作者のインタビューありアプリ制作のノウハウありと、ボリュームもあってお求めやすい価格なので、アプリの発注先を探されている方や最近のアプリ事情を手早く知るのに便利そうな書籍です。</p>
<p>ウチで開発したiPhoneアプリはAir for iOSやTitanium MobileといったWeb技術の応用で作っていまして若干異質かも。よろしければサイドバーに掲載しているアプリをお試しください。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/05/iphone-%e3%82%a2%e3%83%97%e3%83%aa%e3%83%bb%e3%82%af%e3%83%aa%e3%82%a8%e3%82%a4%e3%82%bf%e3%83%bc%e3%82%ba%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%ef%bc%bb2011-2012%ef%bc%bd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe CS5.5</title>
		<link>http://blog.nipx.jp/2011/05/adobe-cs5-5/</link>
		<comments>http://blog.nipx.jp/2011/05/adobe-cs5-5/#comments</comments>
		<pubDate>Fri, 20 May 2011 14:59:30 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=4828</guid>
		<description><![CDATA[本日発売のAdobe CS5.5。早速インストール中。 去年CS5出たばかりで.5のアップデートに6万弱かぁ&#8230;。左の水筒ついてきた。 経費だし、どのみち買わざるえないので使い倒してもととる！ ドリとフラッシュ [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.nipx.jp/wp-content/uploads/2011/05/1000000107.jpg" alt="" title="" width="500" height="373" class="aligncenter size-full wp-image-4829" /></p>
<p>本日発売のAdobe CS5.5。早速インストール中。<br />
去年CS5出たばかりで.5のアップデートに6万弱かぁ&#8230;。左の水筒ついてきた。<br />
経費だし、どのみち買わざるえないので使い倒してもととる！<br />
ドリとフラッシュのモバイルアプリ制作系新機能が楽しみといえば楽しみです。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/05/adobe-cs5-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>神仏霊場巡拝の道</title>
		<link>http://blog.nipx.jp/2011/05/%e7%a5%9e%e4%bb%8f%e9%9c%8a%e5%a0%b4%e5%b7%a1%e6%8b%9d%e3%81%ae%e9%81%93/</link>
		<comments>http://blog.nipx.jp/2011/05/%e7%a5%9e%e4%bb%8f%e9%9c%8a%e5%a0%b4%e5%b7%a1%e6%8b%9d%e3%81%ae%e9%81%93/#comments</comments>
		<pubDate>Thu, 19 May 2011 09:42:27 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[Works]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=4810</guid>
		<description><![CDATA[神仏霊場巡拝の道公式サイトでトップページのFlashを作りました。 企画はbiotopsさま。デザイン、アートディレクション、HTMLは高澤氏によるもの。 僕はトップページFlashの実装を担当させていただきました。 神 [...]]]></description>
			<content:encoded><![CDATA[<p>神仏霊場巡拝の道公式サイトでトップページのFlashを作りました。<br />
企画はbiotopsさま。デザイン、アートディレクション、HTMLは高澤氏によるもの。<br />
僕はトップページFlashの実装を担当させていただきました。</p>
<p><a href="http://www.shinbutsureijou.jp/"><img src="http://blog.nipx.jp/wp-content/uploads/2011/05/ShinbutuReijo_00.jpg" alt="" title="" width="500" height="465" class="aligncenter size-full wp-image-4812" /></a></p>
<p>神仏霊場巡拝の道<br />
<a href="http://www.shinbutsureijou.jp/">http://www.shinbutsureijou.jp/</a><br />
Client：神仏霊場会<br />
Production : biotops<br />
ArtDirection&amp;Design&amp;HTML : Yuhei Takazawa.<br />
Flash : KOSUKE,Nakamura.<a href="http://nipx.jp">nipx</a></p>
<p>メンテナンス性を持たせるため一覧に使う画像は外部ファイルにしつつ、多数の外部ファイルを読込むことで負荷がかからないよう、ファイルを統合した設計にしています。</p>
<p><a href="http://www.shinbutsureijou.jp/"><img src="http://blog.nipx.jp/wp-content/uploads/2011/05/ShinbutuReijo_01.jpg" alt="" title="" width="500" height="263" class="aligncenter size-full wp-image-4819" /></a></p>
<p><a href="http://www.shinbutsureijou.jp/#/1"><img src="http://blog.nipx.jp/wp-content/uploads/2011/05/ShinbutuReijo_02.jpg" alt="" title="" width="500" height="263" class="aligncenter size-full wp-image-4820" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/05/%e7%a5%9e%e4%bb%8f%e9%9c%8a%e5%a0%b4%e5%b7%a1%e6%8b%9d%e3%81%ae%e9%81%93/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Canvasから画像書き出ししてTitaniumに渡す</title>
		<link>http://blog.nipx.jp/2011/04/canvas%e3%81%8b%e3%82%89%e7%94%bb%e5%83%8f%e6%9b%b8%e3%81%8d%e5%87%ba%e3%81%97%e3%81%97%e3%81%a6titanium%e3%81%ab%e6%b8%a1%e3%81%99/</link>
		<comments>http://blog.nipx.jp/2011/04/canvas%e3%81%8b%e3%82%89%e7%94%bb%e5%83%8f%e6%9b%b8%e3%81%8d%e5%87%ba%e3%81%97%e3%81%97%e3%81%a6titanium%e3%81%ab%e6%b8%a1%e3%81%99/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 10:23:12 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Titanium]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=4785</guid>
		<description><![CDATA[titaniumのWebViewに配置したcanvasに描いたイメージをファイルに保存する方法。 ユーザーにcanvasで何かを描かせたらそのデータをファイルに保存したいことも多いはず。作文メーカーを作った時に調べたとこ [...]]]></description>
			<content:encoded><![CDATA[<p>titaniumのWebViewに配置したcanvasに描いたイメージをファイルに保存する方法。<br />
ユーザーにcanvasで何かを描かせたらそのデータをファイルに保存したいことも多いはず。作文メーカーを作った時に調べたところWebViewの中のcanvasとtitaniumでデータを受け渡す方法が2つありました。</p>
<p>1.htmlファイル（canvasタグを書いたhtmlファイル）のJavaScriptでTitanium.App.fireEventでイベントを送信しイベントオブジェクトにcanvasのデータを添付する。</p>
<p>2.titaniumのjsからWebViewのevalJSメソッドを使って、htmlファイルに書いたcanvasのデータをreturnするJavaScriptを実行する。</p>
<p>作文メーカーでは2の方法を使っています。<br />
まず、canvasでイメージデータに変換するにはtoDataURL() メソッドを使います。<br />
以下のページを参考にしました。</p>
<p><a href="http://www.html5.jp/canvas/ref/HTMLCanvasElement/toDataURL.html">toDataURL() メソッド &#8211; Canvasリファレンス &#8211; HTML5.JP</a></p>
<p>一つ問題があります。<br />
toDataURL();<br />
の戻り値はbase64でエンコードされた文字列なのですが、その先頭にmimetypeが含まれるようです。</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">data<span style="color: #339933;">:</span>image<span style="color: #339933;">/</span>png<span style="color: #339933;">;</span>base64<span style="color: #339933;">,</span>iVBORw0KGgoAAAANSUhEUgAABcIAAAQqCAYAAABk7....</pre></div></div>

<p>titaniumでファイルに保存する場合、このmimetypeが後々問題になりますので、どこかの段階で削除します。今回はtoDataURL()を実行した直後にreplaceで文字列から削除することにしました。最初の,以前を削除して以下のようなデータに整形します。</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">iVBORw0KGgoAAAANSUhEUgAABcIAAAQqCAYAAABk7....</pre></div></div>

<p>この処理をまとめたのが以下の関数です。</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> output<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> cvs <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;stage&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> src <span style="color: #339933;">=</span> cvs.<span style="color: #660066;">toDataURL</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;image/png&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/^.*,/</span><span style="color: #339933;">,</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">return</span> src<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>この関数をtitaniumから実行して戻り値をファイルに変換します。<br />
データをデコードしてファイルに書き込めば完了です。デコードするときにmimeTypeがあるとうまくいかないので削除しておく必要があったという具合でした。</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> result <span style="color: #339933;">=</span> webview.<span style="color: #660066;">evalJS</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;output();&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> base64 <span style="color: #339933;">=</span> Titanium.<span style="color: #660066;">Utils</span>.<span style="color: #660066;">base64decode</span><span style="color: #009900;">&#40;</span>result<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> file <span style="color: #339933;">=</span> Titanium.<span style="color: #660066;">Filesystem</span>.<span style="color: #660066;">getFile</span><span style="color: #009900;">&#40;</span> Titanium.<span style="color: #660066;">Filesystem</span>.<span style="color: #660066;">tempDirectory</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;_TEMP_.png&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
file.<span style="color: #000066; font-weight: bold;">write</span><span style="color: #009900;">&#40;</span> base64 <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/04/canvas%e3%81%8b%e3%82%89%e7%94%bb%e5%83%8f%e6%9b%b8%e3%81%8d%e5%87%ba%e3%81%97%e3%81%97%e3%81%a6titanium%e3%81%ab%e6%b8%a1%e3%81%99/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Canvasに解像度を設定する</title>
		<link>http://blog.nipx.jp/2011/04/canvas%e3%81%ab%e8%a7%a3%e5%83%8f%e5%ba%a6%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b/</link>
		<comments>http://blog.nipx.jp/2011/04/canvas%e3%81%ab%e8%a7%a3%e5%83%8f%e5%ba%a6%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 12:03:13 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Titanium]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=4745</guid>
		<description><![CDATA[先日リリースしたオリジナルアプリ作文メーカーでは、ユーザー操作で描く文字の描画にCanvasを使っています。 titanium mobileでは描画APIが標準で用意されていない為、WebViewをつかってCanvasで [...]]]></description>
			<content:encoded><![CDATA[<p>先日リリースしたオリジナルアプリ作文メーカーでは、ユーザー操作で描く文字の描画にCanvasを使っています。<br />
titanium mobileでは描画APIが標準で用意されていない為、WebViewをつかってCanvasで代用した形です。僕はCanvasを使うのはこれが初めてでしたので、実装をCanvasでなく正攻法でいって描画系のモジュールを使うなどでも同じように1からだったのですが、Canvasでもそれなりにパフォーマンスが出るようだし、やはり僕のようなWeb系のデベロッパー/デザイナーにはWebの技術を使ったほうが間違いや不安も少ないと思ったので。今回のは単純な使い方だったしね。</p>
<p>このCanvasを使うにあたって疑問がありました。Ratina Display（640×960）の機種と通常ディスプレイ（320×480）の機種で使いわける必要があるのか？具体的にはキャンバスのサイズはどちらに設定すればいいのか？という点。開発時点ではRatina Displayの確認環境がなかったので、かなり疑問でした。</p>
<p>もう一つ、今回はアプリで使うデータになるので、Canvasで描いたものをtitaniumに渡さなくてはいけない。これできるの？という点。</p>
<p>結果的にどちらも疑問は解消したのですが、初めてってこともあって右往左往と調べたりしたので2回に分けてメモしておきます。参考になる方もいるかもです。</p>
<p>とりあえず今回は前者の疑問、サイズの問題。これをCanvasに解像度を設定すると題して説明します。</p>
<p><span id="more-4745"></span></p>
<p>Ratina Display、通常ディスプレイ両方に対応させるとして、ソースにCanvasの見た目のサイズとして指定する値ですが、これは320×480のディスプレイに表示するものとして設定します。titaniumでは画像を表示する時、imageViewを使いますが、このimageViewもRatina Displayに対応していて、そのサイズは320×480の画面にあわせてwidthとheightを指定します。表示する画像ファイルを高解像度、低解像度2つ作り、高解像度の方のファイル名には@2xという文字を拡張子の前に加えます。Canvasの場合も考え方は同じ。見た目のサイズは通常で指定して、内部で処理する解像度を高くすればよいようです。</p>
<p>まず見た目のサイズとしてCSSでCanvasの幅と高さを指定します。</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;style type=&quot;text/css&quot;&gt;
canvas#stage{
	position:absolute;
	top:0px;
	left:0px;
	border:0px;
	margin:0px;
	padding:0px;
	width:300px;
	height:300px;
	background-color:#FFFFFF;
}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
	&lt;canvas id=&quot;stage&quot;&gt;&lt;/canvas&gt;
&lt;/body&gt;
&lt;/html&gt;</pre></div></div>

<p>次にJavaScriptからCanvasを操作する為、Canvasを参照しコンテキストを取得。<br />
ここまでは普通にキャンバスを操作するなら必ず通る道。<br />
解像度を設定するには、この後、Canvasの属性値のwidthとheightを必要な解像度のサイズで設定しコンテキストもscaleで必要な解像度になる倍率を設定します。<br />
今回は以下のようなsetQualityという関数で処理をまとめました。</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">function setQuality(value){
cvs.setAttribute(&quot;width&quot;, 300 * value);
    cvs.setAttribute(&quot;height&quot;,300 * value);
    ctx.scale( value, value );
}
&nbsp;
window.onload	= function(){
    cvs = document.getElementById(&quot;stage&quot;);
    ctx = cvs.getContext( &quot;2d&quot; );
    cvs.addEventListener( &quot;mousedown&quot;, onTouchStart );
    setQuality( 1 );
}</pre></div></div>

<p>上の場合だと、1倍だから特に解像度はかわらずそのまま。Ratina Displayなら setQuality( 2 )とすれば通常の倍の解像度でCanvasを扱える。</p>
<p>今回はブラウザで表示しているので、解像度の設定がわかるよう0.5を設定したサンプルを以下に載せておきます。</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">&nbsp;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;
&lt;title&gt;Canvasに解像度を設定&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
body{
	border:0px;
	margin:0px;
	padding:0px;
	background-color:#CCCCCC;
}
canvas#stage{
	position:absolute;
	top:0px;
	left:0px;
	border:0px;
	margin:0px;
	padding:0px;
	width:300px;
	height:300px;
	background-color:#FFFFFF;
}
&lt;/style&gt;
&nbsp;
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #003366; font-weight: bold;">var</span> cvs<span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> ctx<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> onTouchStart<span style="color: #009900;">&#40;</span> e <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	ctx.<span style="color: #660066;">beginPath</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	ctx.<span style="color: #660066;">lineWidth</span>	<span style="color: #339933;">=</span> <span style="color: #CC0000;">3</span><span style="color: #339933;">;</span>
	ctx.<span style="color: #660066;">lineCap</span>		<span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;round&quot;</span><span style="color: #339933;">;</span>
	ctx.<span style="color: #660066;">lineJoin</span>	<span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;round&quot;</span><span style="color: #339933;">;</span>
	ctx.<span style="color: #660066;">moveTo</span><span style="color: #009900;">&#40;</span> e.<span style="color: #660066;">pageX</span><span style="color: #339933;">,</span> e.<span style="color: #660066;">pageY</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	ctx.<span style="color: #660066;">lineTo</span><span style="color: #009900;">&#40;</span> e.<span style="color: #660066;">pageX</span><span style="color: #339933;">,</span> e.<span style="color: #660066;">pageY</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	ctx.<span style="color: #660066;">stroke</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	cvs.<span style="color: #660066;">addEventListener</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;mousemove&quot;</span><span style="color: #339933;">,</span> onTouchMove <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	cvs.<span style="color: #660066;">addEventListener</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;mouseup&quot;</span><span style="color: #339933;">,</span> onTouchEnd <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	e.<span style="color: #660066;">preventDefault</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> onTouchMove<span style="color: #009900;">&#40;</span> e <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	ctx.<span style="color: #660066;">lineTo</span><span style="color: #009900;">&#40;</span> e.<span style="color: #660066;">pageX</span><span style="color: #339933;">,</span> e.<span style="color: #660066;">pageY</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	ctx.<span style="color: #660066;">stroke</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	e.<span style="color: #660066;">preventDefault</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> onTouchEnd<span style="color: #009900;">&#40;</span> e <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	cvs.<span style="color: #660066;">removeEventListener</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;mousemove&quot;</span><span style="color: #339933;">,</span> onTouchMove <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	cvs.<span style="color: #660066;">removeEventListener</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;mouseup&quot;</span><span style="color: #339933;">,</span> onTouchEnd <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	ctx.<span style="color: #660066;">lineTo</span><span style="color: #009900;">&#40;</span> e.<span style="color: #660066;">pageX</span><span style="color: #339933;">,</span> e.<span style="color: #660066;">pageY</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	ctx.<span style="color: #660066;">stroke</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	e.<span style="color: #660066;">preventDefault</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> setQuality<span style="color: #009900;">&#40;</span>value<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	cvs.<span style="color: #660066;">setAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;width&quot;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">300</span> <span style="color: #339933;">*</span> value<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    cvs.<span style="color: #660066;">setAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;height&quot;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">300</span> <span style="color: #339933;">*</span> value<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    ctx.<span style="color: #660066;">scale</span><span style="color: #009900;">&#40;</span> value<span style="color: #339933;">,</span> value <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
window.<span style="color: #000066;">onload</span>	<span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	cvs <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;stage&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	ctx <span style="color: #339933;">=</span> cvs.<span style="color: #660066;">getContext</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;2d&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	cvs.<span style="color: #660066;">addEventListener</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;mousedown&quot;</span><span style="color: #339933;">,</span> onTouchStart <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	setQuality<span style="color: #009900;">&#40;</span> <span style="color: #CC0000;">0.5</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;canvas id=&quot;stage&quot;&gt;&lt;/canvas&gt;
&lt;/body&gt;
&lt;/html&gt;</pre></div></div>

<p>0.5倍<br />
<iframe src="http://blog.nipx.jp/wp-content/uploads/2011/04/canvas05.html" width="300" height="300"></iframe></p>
<p>通常（1倍）<br />
<iframe src="http://blog.nipx.jp/wp-content/uploads/2011/04/canvas.html" width="300" height="300"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/04/canvas%e3%81%ab%e8%a7%a3%e5%83%8f%e5%ba%a6%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhoneアプリ 作文メーカー</title>
		<link>http://blog.nipx.jp/2011/04/iphone%e3%82%a2%e3%83%97%e3%83%aa-%e4%bd%9c%e6%96%87%e3%83%a1%e3%83%bc%e3%82%ab%e3%83%bc/</link>
		<comments>http://blog.nipx.jp/2011/04/iphone%e3%82%a2%e3%83%97%e3%83%aa-%e4%bd%9c%e6%96%87%e3%83%a1%e3%83%bc%e3%82%ab%e3%83%bc/#comments</comments>
		<pubDate>Sat, 16 Apr 2011 15:17:52 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[Download]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[nipx]]></category>
		<category><![CDATA[Titanium]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=4722</guid>
		<description><![CDATA[手書きで作文を書くアプリを作りました。作文を原稿用紙の画像ファイルに書き出せます。「ひらがなれんしゅうちょう」や「カタカナれんしゅうちょう」で文字を練習して作文を書こう。 無料版もあります。無料版は原稿用紙にニピクロゴの [...]]]></description>
			<content:encoded><![CDATA[<p>手書きで作文を書くアプリを作りました。作文を原稿用紙の画像ファイルに書き出せます。「ひらがなれんしゅうちょう」や「カタカナれんしゅうちょう」で文字を練習して作文を書こう。</p>
<p><a href="http://itunes.apple.com/jp/app/id431487817?mt=8&#038;uo=4" target="itunes_store"><img src="http://ax.phobos.apple.com.edgesuite.net/images/web/linkmaker/badge_appstore-lrg.gif" alt="作文メーカー - nipx" style="border: 0;"/></a></p>
<p><a href="http://itunes.apple.com/jp/app/id431487817?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/04/iTunesArtwork.png" alt="" title="" width="512" height="512" class="aligncenter size-full wp-image-4723" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/id431487817?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/04/1.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-4725" /></a><br />
<a href="http://itunes.apple.com/jp/app/id431487817?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/04/2.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-4726" /></a><br />
<a href="http://itunes.apple.com/jp/app/id431487817?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/04/3.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-4727" /></a><br />
<a href="http://itunes.apple.com/jp/app/id431487817?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/04/4.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-4728" /></a><br />
<a href="http://itunes.apple.com/jp/app/id431487817?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/04/5.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-4729" /></a></p>
<p><br/><br />
無料版もあります。無料版は原稿用紙にニピクロゴの透かしが入る以外、有料版と同じです。</p>
<p>作文メーカー FREE版</p>
<p><a href="http://itunes.apple.com/jp/app/id431488833?mt=8&#038;uo=4" target="itunes_store"><img src="http://ax.phobos.apple.com.edgesuite.net/images/web/linkmaker/badge_appstore-lrg.gif" alt="作文メーカー FREE版 - nipx" style="border: 0;"/></a></p>
<p><a href="http://itunes.apple.com/jp/app/id431488833?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/04/iTunesArtwork1.png" alt="" title="" width="512" height="512" class="aligncenter size-full wp-image-4737" /></a></p>
<p>無料版は原稿用紙にロゴの透かしが入るよ。<br />
<a href="http://itunes.apple.com/jp/app/id431488833?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/04/51.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-4733" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/04/iphone%e3%82%a2%e3%83%97%e3%83%aa-%e4%bd%9c%e6%96%87%e3%83%a1%e3%83%bc%e3%82%ab%e3%83%bc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Relish 2011SS Collection</title>
		<link>http://blog.nipx.jp/2011/03/relish-2011ss-collection/</link>
		<comments>http://blog.nipx.jp/2011/03/relish-2011ss-collection/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 07:47:02 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[Works]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=4696</guid>
		<description><![CDATA[Relish 2011 Spring &#038; Summer のスペシャルサイトでFlashをやらせていただきました。 サイトプロデュースはFICCさま。アートディレクションにnssgraphica.町田さん、デザイ [...]]]></description>
			<content:encoded><![CDATA[<p>Relish 2011 Spring &#038; Summer のスペシャルサイトでFlashをやらせていただきました。</p>
<p>サイトプロデュースは<a href="http://www.ficc.jp/">FICC</a>さま。アートディレクションに<a href="http://www.nssgraphica.com/">nssgraphica.町田さん</a>、デザインに<a href="http://www.nssgraphica.com/">nssgraphica.神村さん</a>という布陣で、僕はFlashの実装を担当させていただきました。関係者のみなさまおつかれさまでした。</p>
<p><a href="http://www.relish-style.net/"><img src="http://blog.nipx.jp/wp-content/uploads/2011/03/relish1.jpg" alt="" title="" width="500" height="400" class="aligncenter size-full wp-image-4700" /></a></p>
<p>Relish 2011SS Collection<br />
<a href="http://www.relish-style.net/">http://www.relish-style.net/</a><br />
Production : <a href="http://www.ficc.jp">FICC</a><br />
ArtDirection : Munehiro Machida.<a href="http://www.nssgraphica.com/">nssgraphica</a><br />
Design : Makoto Kamimura.<a href="http://www.nssgraphica.com/">nssgraphica</a><br />
Flash : KOSUKE,Nakamura.<a href="http://nipx.jp">nipx</a></p>
<p><a href="http://www.relish-style.net/"><img src="http://blog.nipx.jp/wp-content/uploads/2011/03/relish0.jpg" alt="" title="" width="500" height="400" class="aligncenter size-full wp-image-4702" /></a></p>
<p><a href="http://www.relish-style.net/"><img src="http://blog.nipx.jp/wp-content/uploads/2011/03/relish2.jpg" alt="" title="" width="500" height="400" class="aligncenter size-full wp-image-4703" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/03/relish-2011ss-collection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhoneアプリ すうじのれんしゅうちょう</title>
		<link>http://blog.nipx.jp/2011/03/iphone%e3%82%a2%e3%83%97%e3%83%aa-%e3%81%99%e3%81%86%e3%81%98%e3%81%ae%e3%82%8c%e3%82%93%e3%81%97%e3%82%85%e3%81%86%e3%81%a1%e3%82%87%e3%81%86/</link>
		<comments>http://blog.nipx.jp/2011/03/iphone%e3%82%a2%e3%83%97%e3%83%aa-%e3%81%99%e3%81%86%e3%81%98%e3%81%ae%e3%82%8c%e3%82%93%e3%81%97%e3%82%85%e3%81%86%e3%81%a1%e3%82%87%e3%81%86/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 05:11:16 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[nipx]]></category>

		<guid isPermaLink="false">http://blog.nipx.jp/?p=4676</guid>
		<description><![CDATA[さらに数字の練習アプリも作りました。 このアプリは無料です。 なので、 な感じです。]]></description>
			<content:encoded><![CDATA[<p>さらに数字の練習アプリも作りました。</p>
<p><a href="http://itunes.apple.com/jp/app/id422567607?mt=8&#038;uo=4" target="itunes_store"><img src="http://ax.phobos.apple.com.edgesuite.net/images/web/linkmaker/badge_appstore-lrg.gif" alt="すうじのれんしゅうちょう - nipx" style="border: 0;"/></a></p>
<p><a href="http://itunes.apple.com/jp/app/id422567607?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/03/icon5121.png" alt="" title="" width="512" height="512" class="aligncenter size-full wp-image-4680" /></a></p>
<p>このアプリは無料です。<br />
なので、<br />
<a href="http://itunes.apple.com/jp/app/id422567607?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/03/SujinoRensyucho0.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-4688" /></a><br />
な感じです。</p>
<p><a href="http://itunes.apple.com/jp/app/id422567607?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/03/SujinoRensyucho1.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-4682" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/id422567607?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/03/SujinoRensyucho2.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-4683" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/id422567607?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/03/SujinoRensyucho3.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-4684" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/id422567607?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/03/SujinoRensyucho4.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-4685" /></a></p>
<p><a href="http://itunes.apple.com/jp/app/id422567607?mt=8&#038;uo=4" target="itunes_store"><img src="http://blog.nipx.jp/wp-content/uploads/2011/03/SujinoRensyucho5.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-4686" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nipx.jp/2011/03/iphone%e3%82%a2%e3%83%97%e3%83%aa-%e3%81%99%e3%81%86%e3%81%98%e3%81%ae%e3%82%8c%e3%82%93%e3%81%97%e3%82%85%e3%81%86%e3%81%a1%e3%82%87%e3%81%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

