<?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/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>宇都宮ウエブ制作所</title>
	<atom:link href="http://utweb.jp/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://utweb.jp/blog</link>
	<description>宇都宮さんっていう、夫婦でやってるウエブサイト制作請負の大阪下町家内製手工業業務日誌</description>
	<lastBuildDate>Tue, 10 Aug 2010 07:20:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://utweb.jp/blog/feed" />
		<item>
		<title>【Flash】タイムラインですごくゆ～～っくり動かしたい時のTIPS</title>
		<link>http://utweb.jp/blog/archives/881</link>
		<comments>http://utweb.jp/blog/archives/881#comments</comments>
		<pubDate>Fri, 06 Aug 2010 08:56:45 +0000</pubDate>
		<dc:creator>頼子</dc:creator>
				<category><![CDATA[実験]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[アニメーション]]></category>
		<category><![CDATA[タイムライン]]></category>

		<guid isPermaLink="false">http://utweb.jp/blog/?p=881</guid>
		<description><![CDATA[Tweet
あまりニーズはないかと思われますが、例えばアハ体験のように対象物を数十秒かけて、ゆっくりじんわりと動かす時のtipsです。 まずはサンプルをご覧下さい。

このサンプルでは30fpsで30秒かけてちょうど30 [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Futweb.jp%2Fblog%2Farchives%2F881&amp;text=%E3%80%90Flash%E3%80%91%E3%82%BF%E3%82%A4%E3%83%A0%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%A7%E3%81%99%E3%81%94%E3%81%8F%E3%82%86%EF%BD%9E%EF%BD%9E%E3%81%A3%E3%81%8F%E3%82%8A%E5%8B%95%E3%81%8B%E3%81%97%E3%81%9F%E3%81%84%E6%99%82%E3%81%AETIPS&amp;lang=en&amp;count=horizontal" style="" class="twitter-share-button">Tweet</a></div>
<p>あまりニーズはないかと思われますが、例えばアハ体験のように対象物を数十秒かけて、ゆっくりじんわりと動かす時のtipsです。 まずはサンプルをご覧下さい。</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="90" height="80" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://utweb.jp/blog/wp-content/uploads/flash/smoose2.swf" /><embed type="application/x-shockwave-flash" width="90" height="80" src="http://utweb.jp/blog/wp-content/uploads/flash/smoose2.swf"></embed></object></p>
<p>このサンプルでは30fpsで30秒かけてちょうど30px移動しています。</p>
<div id="attachment_888" class="wp-caption alignnone" style="width: 310px"><a title="cap_0806_02" href="http://utweb.jp/blog/wp-content/uploads/2010/08/cap_0806_02.jpg"><img src="http://utweb.jp/blog/wp-content/uploads/2010/08/cap_0806_02-300x38.jpg" alt="ただトゥイーンさせているだけという素材そのものを活かした作りになっております。" title="cap_0806_02" width="300" height="38" class="size-medium wp-image-888" /></a><p class="wp-caption-text">ただトゥイーンさせているだけという素材そのものを活かした作りになっております。</p></div>
<p>・・・なんですが1pxごとにしか進まないような感じで、カクついた動きになってしまっているのがお分かりになりますでしょうか。 これを解消するためにはこの為だけにAS仕込むか、別途FLV化させるか、と悩んでいたのですが、とっても簡単な方法で解決することができました。</p>
<p><span id="more-881"></span><br />
みなさんもよくご存知の「<strong>スムージング</strong>」。</p>
<div id="attachment_887" class="wp-caption alignnone" style="width: 310px"><a title="「スムージング」" href="http://utweb.jp/blog/wp-content/uploads/2010/08/cap_0806.jpg"><img src="http://utweb.jp/blog/wp-content/uploads/2010/08/cap_0806-300x102.jpg" alt="ライブラリ上のビットマップを右クリック→「プロパティ」にあるコレ！" title="「スムージング」" width="300" height="102" class="size-medium wp-image-887" /></a><p class="wp-caption-text">ライブラリ上のビットマップを右クリック→「プロパティ」にあるコレ！</p></div>
<p>これをポチっとチェックをいれるだけでほらこの通り。</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="90" height="80" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://utweb.jp/blog/wp-content/uploads/flash/smoose1.swf" /><embed type="application/x-shockwave-flash" width="90" height="80" src="http://utweb.jp/blog/wp-content/uploads/flash/smoose1.swf"></embed></object></p>
<p>画像のジャギー解消だけに有効なのかと思ったら、こんな使い方もあったんですね。 よく使ってた機能なだけにびっくりしました。</p>
]]></content:encoded>
			<wfw:commentRss>http://utweb.jp/blog/archives/881/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://utweb.jp/blog/archives/881" />
	</item>
		<item>
		<title>DropboxとAmazonS3で堅牢な作業環境を構築してみる</title>
		<link>http://utweb.jp/blog/archives/872</link>
		<comments>http://utweb.jp/blog/archives/872#comments</comments>
		<pubDate>Fri, 30 Jul 2010 12:25:58 +0000</pubDate>
		<dc:creator>正宗</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[便利]]></category>

		<guid isPermaLink="false">http://utweb.jp/blog/?p=872</guid>
		<description><![CDATA[Tweet
我々コンテンツ制作屋にとっては作業ファイルというのは命の次に大事なものでして、実際今までは作業用ファイルをRaid5で構築したNAS（とにかくものすごくデータが消えにくくて家中のPCからアクセスできるネットワ [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Futweb.jp%2Fblog%2Farchives%2F872&amp;text=Dropbox%E3%81%A8AmazonS3%E3%81%A7%E5%A0%85%E7%89%A2%E3%81%AA%E4%BD%9C%E6%A5%AD%E7%92%B0%E5%A2%83%E3%82%92%E6%A7%8B%E7%AF%89%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B&amp;lang=en&amp;count=horizontal" style="" class="twitter-share-button">Tweet</a></div>
<p>我々コンテンツ制作屋にとっては作業ファイルというのは命の次に大事なものでして、実際今までは作業用ファイルをRaid5で構築したNAS（とにかくものすごくデータが消えにくくて家中のPCからアクセスできるネットワークディスク）で管理していたんですが、火事や地震などの際、何をおいてでもどうやってこれを運びだそうかなんて常々考えてしまうくらい、そのくらい作業ファイル消失やデータ消失に対してデリケートなわけです。</p>
<p>そうでなくても個人事業やフリーランス、中小企業でWEBサイト制作のお仕事をされている場合、データ管理はどうするのがベストなのかいろいろと考えさせられますね。</p>
<p>そこで今までのやりかたと失敗点を踏まえて、WEBサイト制作においてのデータ管理の方法を探っていきたいと思います。<br />
究極の目標は「<strong>家が突然爆発しても仕事が続けられる</strong>」です。</p>
<p>ちなみに最初に念のためお断りしておきますと、この記事では長々とDropboxとjungleDiskとAmazonS3のサービスについて書かれてありますが、それぞれのサービスの説明は全然しておりません。あくまでそれぞれ3つのサービスを連携させたらこういうふうになるよ、という類の記事ですんで、個々のサービスについては今一度検索して調べてみることをおすすめします。<br />
それぞれ有料サービスが存在しますし、特にDropboxとjungleDiskはただサインインしただけじゃなくて専用のクライアントソフトをインストールしないと全然便利に使えないものなので、その使い方については別途調べておく事をお勧めします。<br />
<span id="more-872"></span></p>
<h3>WEBサイト制作においてのデータ管理の課題</h3>
<h4>とにかくいろんなタイプのデータが混在する</h4>
<p>ただのHTMLサイトを作るだけでもHTMLファイルや各種画像ファイル、画像の元素材ファイルや指示書などファイルの種類と数は相当数になります。<br />
さらにプログラマブルなサイトを求められる場合、ライブラリやその階層構造（多くの場合HTMLの公開フォルダとは別でプログラムを作るのでHTMLだけの時と比べると階層構造がややこしくなる）、プログラムやデータの設計書なども必要になってきます。<br />
Flashも必要となるとさらに加えて音声データや映像データ、さらにその元素材など扱うデータは多岐にわたります。<br />
種類も量も大量のファイルを扱う必要が出てきます。</p>
<h4>自前管理ではRaid5と世代バックアップは必須だった</h4>
<p>絶対壊れたらだめなときに壊れるのがHDDです。CM連動型WEB広告など、アップ直前に限ってHDDが故障したなんて事故が理由にならないくらい、たとえHDDが壊れてもファイルがすぐに取り出せる状態でないといけないので、ネットワークディスクをRaid5で組むのは必須でした。<br />
これでデータの保存領域は堅牢になりましたが、間違った操作に対してまだ非常に弱いです。たとえばそのネットワークディスクの中のファイルを間違って全部消してしまったとか。<br />
そこでRaid5＋定期的な世代バックアップを必要としていました。</p>
<h4>ネットワークディスクは遅い</h4>
<p>ネットワークディスクをいくら完璧にしたとしても、ローカルディスクの速度には勝てないので、やはり大量のファイルをスピーディーに扱えないのは困りものです。いくら定期的バックアップとってたとしても、間違えて削除したときとかもすぐに戻せないし。<br />
そうすると作業のたびにネットワークディスクからローカルに一旦コピーしておいて、ローカルで作業して終わったらまたネットワークディスクに置く、という手間が必要になりました。<br />
大事なそこのところを手作業に頼るというジレンマで、実際事故も多かったです。<br />
ただでさえどこのが最新状態なのかがわかりにくくなっているのに、共同作業なんかのときは最悪で、ファイルの一部が最新のものが混在してたりと、誰もがコントロールできない状態に陥りました。<br />
たった一文字の修正が細かく刻まれてきた場合なんかは、「ネットからローカルにコピーして 修正したものをまたネットにあげる」の繰り返しで、やればやるほどミスも多くなるしかといって直接ネットをいじったりしたらそれはそれでどれが最新版かわからなくなる元兇だったりで、ルールを厳格にしてもゆるくしても必ず何かしらの事故の要因を作ってしまうので悩みの種でした。</p>
<h3>基本的にはDropboxがほぼすべての悩みを解決</h3>
<h4>見つけた、Dropboxちゃんのいいところ</h4>
<p>今更説明の必要もないDropboxですが、これを導入するだけで基本的にはほぼすべての悩みが解決しました。</p>
<ul>
<li>基本はローカルなので速度とか関係ない
<ul>
<li>Dropboxのフォルダがローカルに出来るので、このフォルダの中で作業すればいいだけなので普段全くストレスなく仕事が出来ます。</li>
</ul>
</li>
<li>対象がDropboxフォルダだけなのが逆にいい
<ul>
<li>Dropboxのほかにも、もっと高機能なsugarsyncというサービスもありましたが、sugarsyncが同期できるフォルダを選べるのに対してDropboxは同期できるフォルダは一つだけです。もともと作業用フォルダは一つにまとめておくタイプだったので、このDropboxの制約が逆に好みに合っていました。同期できるフォルダがいろいろ散らかっていると、そっちの管理にも手を取られてしまいます。</li>
</ul>
</li>
<li>勝手にオンラインに同期してくれる
<ul>
<li>基本はローカルで作業しているだけですが、裏で僕の知らないうちにオンラインに同期してくれています。PC2台持ってても、どっちで作業してもきちんとファイルが同期している。これはすごい。</li>
</ul>
</li>
<li>自動で世代バックアップをとってくれる
<ul>
<li>PC2台も持ってない人でも、この世代バックアップだけでもDropbox使う理由があります。ファイルを間違えて消してしまったとき、もうちょっと前のバージョンに戻したいとき、修正に修正を重ねたデザインをあっさり「やっぱ前のに戻して」と言われたとき、Dropboxが自動でオンラインに同期する際に世代ごとにバックアップもしてくれているので、いつでもファイルを元に戻せます。<strong>もう納品直前にファイル消失して気絶することもなくなります！</strong></li>
</ul>
</li>
<li>共同作業もばっちり
<ul>
<li>どのフォルダを誰と共有するかも細かく決められるので、共同作業時もオンラインストレージやネットワークドライブを介する必要がありません。</li>
</ul>
</li>
</ul>
<p>こんなに便利なDropbox、基本的にこれさえあればたとえ今突然PCが爆発しても、新しいPCにDropboxを入れさえすれば何事もなかったかのように作業を続けることが出来ます。<br />
もしまだDropboxのアカウントが無い方いましたら、次のリンクからアカウント登録を行いますと通常2GBまで無料なのに対して20MB増えて2.25GBの状態で始められることが出来ますのでよかったらどうぞ！（僕のアカウントからの紹介になるので、僕も250MB増えます）</p>
<p><a href="https://www.dropbox.com/referrals/NTcyODY1NDg5" target="_blank">Dropboxのアカウントを作る</a></p>
<p>英語のサイトですが、説明に従ってアカウントを作って、専用のアプリをダウンロードしてインストールすればすぐに使い始めることが出来ます。</p>
<h4>Dropboxだけでは解決できないところ</h4>
<p>Dropboxに限ったことではないのですが、この手の自動ストレージサービスで問題なのは容量が少ないことでした。<br />
無料アカウントでも2GB、年間$99.00払って50GB、年間$199.00払えば100GB まで拡張できるのですが全然足りなくなります。<br />
結局、Dropboxに入れておくファイルを選ぶ必要があるのですが、選ばなかったファイルに限ってPCが爆発した直後に即時対応の修正を求められるかもしれません。冗談みたいですが、必要なときに限って必要なファイルがないのはよくある事です。</p>
<h3>AmazonS3と併用で解決！</h3>
<h4>時期尚早？</h4>
<p>いきなりですが、今AmazonS3でアカウント作るのはちょっとまずいかもしれないです。<br />
というのも今AmazonS3でアカウント作るとUSにあるサーバーを使うことになるかと思うんですが、もしかしたらそろそろ東京にもサーバーが作られるんじゃないかという噂を聞いたんですよ。<br />
ネットワークといえどサーバーとの物理的な距離は回線の速度に影響しますんで、もしかしたら出来るかもしれない東京サーバーまでアカウント作成は待った方がいいかもしれないです。<br />
<strong>僕は今作りましたが</strong>。<br />
今すぐにでもアカウント作るぞ！っていう我に続く猛者がいましたらリンク張っておきますんでどうぞ。</p>
<p><a href="http://aws.amazon.com/s3/" target="_blank">http://aws.amazon.com/s3/</a></p>
<p>こちらも簡単な英語ですが、僕がはまったのは郵便番号を7桁で書いたらエラーになったので、3桁に減らしたらいけました。</p>
<p>そもそもAmazonS3とはなんぞや？ということですが、ものすごく簡単に説明しますとAmazonが自分ところで使ってるサーバーを有料で貸してくれるので、これがまたえっらいスペックいいのにえっらい安くて済むんでみんな喜んでるサービスなんです。<br />
AmazonEC2っていう、すっごい速いサーバーを、使った時間だけ貸してくれるサービスがありましてですね、これがまたすごくて、仮想化っていうんですけどアクセスがあったときだけ（仮想的に）サーバーの電源を入れて、計算が終わると（仮想的に）サーバーの電源を消すみたいなことを自動的にやってくれるサービスなんですね。電源を落としちゃうとデータは保存されないので、その保存用に作られたサービスがAmazonS3ということになっております。<br />
電源入れてた時間だけお金払う貸しファミコンがEC2で、なんでも入れられる便利な貸しカセットがあって、その要領に対してお金払うのがS3ってイメージですかね。</p>
<h3>jungleDiskでAmazonS3をネットワークドライブ化</h3>
<p>AmazonS3を契約しただけではそんなに便利にデータを扱えないですがjungleDiskというサービスを使うことによってAmazonS3のサーバーをネットワークドライブとして扱うことが出来るようになります。<br />
jungleDisk自体も有料サービスで、僕もどのプランでやればいいのかかなり迷ったんですが共同作業用にゆくゆくはサブアカウントを増やしたくなるかもしれないので、僕はとりあえずBusiness Classの月$4のプランで初めてみることにしました。個人でアカウントとって管理する分にはPersonalの月$3のプランでもいいかもしれませんね。</p>
<p><a href="https://www.jungledisk.com/" target="_blank">https://www.jungledisk.com/</a></p>
<h4>とりあえずDropboxとjungleDisk+AmazonS3でルールを作っておく</h4>
<p>Dropboxはローカルでの作業を全自動でクラウド化してくれるサービス。でも最大容量が少ない。<br />
jungleDiskはクラウドの先にあるものをローカルで扱ってるように見せかけてくれるサービス。容量無限大。でもローカルに見えるその先は実はネットワークの向こうなので速度遅い。</p>
<p>このふたつの特徴をうまいこと使い分けて、次のように管理するようにしました。</p>
<ul>
<li>現在進行中の案件はDropbox上で
<ul>
<li>更新が頻繁にある状態。なのでスピードが求められる。<br />
世代間バックアップも必須</li>
</ul>
</li>
<li>案件が閉じたらjungleDiskでAmazonS3に保管
<ul>
<li>またいつ使うかはわからないけど、作ったものは大事に保管。<br />
普段はあまり触ることのないファイルなのでネットワーク越しである程度遅くても大丈夫。それよりはどんどん貯めるので容量がたっぷり欲しい。</li>
</ul>
</li>
</ul>
<p>これでお互いのいいところを補いながらも、家が爆発しても手元にPCと回線さえあれば、爆発直後からでもどんな案件の対応も出来る環境が手に入りました。</p>
<h3>おまけ</h3>
<p>少し冗長かな？とも思うんですが、jungleDiskの月$4のプランだとAmazonS3とは別に10GBの容量を借りることが出来たので、試しにここにDropboxをSyncさせてみました。<br />
まあほんと意味のない冗長性だと思いますが。</p>
<h3>まとめ</h3>
<p>クラウドクラウドって言うのは、なんか流行に乗っかってて嫌なんですけど、昔から出来るだけネットワーク上に作業環境をおいてしまって特定のPCや環境に依存されにくいというのは目指してきたんですが、僕みたいに個人事業主だとネットワーク環境も自分でメンテナンスしないといけないので、手段が目的化してしまうと逆効果なわけですね。</p>
<p>実際、僕の一番の仕事は制作作業なわけでして、その制作作業を助けるためのネットワーク構築のはずが、ネットワークに障害が起こると自分でメンテしないといけないので、それはそれで非常にリスクを増やすだけでした。</p>
<p>VPNサーバーやNAS、自動バックアップサーバーや世代管理サーバーなんかも自分で構築しちゃうと非常に安価にできるわけですが、これらのうちのどれかひとつでも落ちてしまうとただでさえ仕事どころではなくなるのに、ネットワークのメンテナンスもしないといけなくなる。そうするとこのサーバーはいったいどこまで信頼できるのかの見極めもしないといけないし、それによって依存度をかえないともいけなくなる。確実なファイル管理のための手段であったはずのサーバーが、堅実なネットワーク運用を目的としないと何も出来なくなるんです。</p>
<p>そういう意味では、小規模制作集団にとってのデータクラウド化は非常に有意義なんじゃないかと思います。Dropboxの2GB上限のプランだけでも無料ですし、かなりおすすめできますが、僕はもう少し踏み込んでクラウドでデータを運用してみようかと思います。</p>
<p>僕のデータ管理についての考え方を長々と書いた割には、結局は「DropboxとjungleDiskの併用まじおすすめ」しか中身のない記事ですが、僕も常日頃からデータ管理に頭を悩ませている毎日ですので、少しでもどなたかの運用のヒントになれば幸いです。</p>
]]></content:encoded>
			<wfw:commentRss>http://utweb.jp/blog/archives/872/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://utweb.jp/blog/archives/872" />
	</item>
		<item>
		<title>Progression 4 Flashフレームワーク入門ノート発売！</title>
		<link>http://utweb.jp/blog/archives/834</link>
		<comments>http://utweb.jp/blog/archives/834#comments</comments>
		<pubDate>Mon, 19 Jul 2010 11:47:19 +0000</pubDate>
		<dc:creator>正宗</dc:creator>
				<category><![CDATA[お知らせ]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Progression]]></category>

		<guid isPermaLink="false">http://utweb.jp/blog/?p=834</guid>
		<description><![CDATA[Tweet
著者である大重美幸様より、2010/7/17に発売したばかりの「詳細！Progression 4 Flashフレームワーク入門ノート」（クリック先はアマゾンで買う）を献本いただきました！
著者である大重様、発 [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Futweb.jp%2Fblog%2Farchives%2F834&amp;text=Progression+4+Flash%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E5%85%A5%E9%96%80%E3%83%8E%E3%83%BC%E3%83%88%E7%99%BA%E5%A3%B2%EF%BC%81&amp;lang=en&amp;count=horizontal" style="" class="twitter-share-button">Tweet</a></div>
<p>著者である大重美幸様より、2010/7/17に発売したばかりの「<a href="http://amzn.to/cV5b54" target="_blank">詳細！Progression 4 Flashフレームワーク入門ノート</a>」（クリック先はアマゾンで買う）を献本いただきました！</p>
<div id="attachment_836" class="wp-caption alignnone" style="width: 234px"><a title="Prog4入門ノート！" href="http://amzn.to/cV5b54" target="_blank"><img src="http://utweb.jp/blog/wp-content/uploads/2010/07/prog_bok-224x300.jpg" alt="俗に言う「大重本」　この写真はクリックするとアマゾンへ" title="Prog4入門ノート！" width="224" height="300" class="size-medium wp-image-836" /></a><p class="wp-caption-text">俗に言う「大重本」この写真はクリックするとアマゾンへ</p></div>
<p>著者である大重様、発送いただいたソーテック社様、この場をお借りしてお礼申し上げます。</p>
<p>献本していただくなんていう体験、僕自身の人生の中でそうあることでもないのでものすごくうれしいです。ましてやAS3を覚えるときに相当お世話になった大重さんからとなっては、これはもう本気でレビューするしかありません！！<br />
僕も業務フレームワークとしてProgressionをがっつり使っている人間の一人として、また実際に自分が入門の時にどこでつまづいたのかとかも思い出しながら、かなり突っ込んでレビューしたいと思います！<br />
考えてみれば本のレビューなんてそんなにやったことがなくて、もしかしたらかなりとんちんかんなことになるかもしれませんが、少しでも皆さんのほんの購入時の参考になればと思います。がんばります。</p>
<p><span id="more-834"></span></p>
<h3>最初の印象</h3>
<p>基本的には、AS3入門書で有名な「詳細！ActionScript3.0入門ノート」と雰囲気が一緒で前ページ青と黒の二色刷。<br />
チャプター1でProgression4の基礎をひととおり習った後は、Proression4をフルパワーで使うためにほぼすべてのチャプターでクラススタイルでの説明になります。<br />
なのでメインとなる読者の対象としては「詳細！ActionScript3.0入門ノート」などでAS3をある程度入門した方、といったところでしょうか。<br />
技術書である以上、専門用語やスクリプトもよく出てきますが同じように画面写真も豊富なので、特に難解な印象は受けません。<br />
多くの人が入門書を手にするとき「この本は自分のレベルにみあった入門書か」を気にすると思いますが、何をもって簡単そうとか難しそうと印象するのかは人それぞれですので、このへんは先もいったようにAS3入門ノートの雰囲気と一緒なのでそちらを読まれたことがある方はそれを参考にするといいでしょう。</p>
<div id="attachment_839" class="wp-caption alignnone" style="width: 310px"><a title="prog_book_0" href="http://utweb.jp/blog/wp-content/uploads/2010/07/prog_book_0.jpg"><img src="http://utweb.jp/blog/wp-content/uploads/2010/07/prog_book_0-300x224.jpg" alt="入門ノートの名に恥じない、細やかな操作手順。こっから先の写真はクリックすると拡大します。" title="prog_book_0" width="300" height="224" class="size-medium wp-image-839" /></a><p class="wp-caption-text">入門ノートの名に恥じない、細やかな操作手順。こっから先の写真はクリックすると拡大します。</p></div>
<h3>目次ごとの感想</h3>
<p>全部でチャプター７まであります。</p>
<ul>
<li>チャプター1：Progression4の基礎
<ul>
<li>Progressionとは何なのかの説明に始まり、インストールから各プロジェクトの作成方法、さらにはコンポーネントスタイル、タイムラインスタイル、クラススタイルの3つのスタイルで実際にHelloWorldを表示させるまでが説明されています。<br />
このチャプターでひとまず全体にわたって動かしてみて、徐々に順を追ってこれから学習を進めるという構成になっているようです。</li>
</ul>
</li>
<li>チャプター2：シーンツリーの基本パターン
<ul>
<li>Progressionの肝のひとつである「シーン」についてかなり詳細な説明がされています。<br />
シーンの概念は、HTMLでいう「ファイル（ページ）」と同じく場面を構成する1単位なわけです。ほとんどの場合シーン構造がそのままサイトマップになりますので、このシーンの概念にチャプターをまるまる一つ費やして説明されているのはかなりわかりやすいと思いました。</li>
</ul>
</li>
<li>チャプター3：シーンの移動とシーンイベント
<ul>
<li>シーンの構造が理解できたら、次はいよいよシーンの移動を行います。<br />
このへんからスクリプトの記述が多くなってきます。<br />
<div id="attachment_844" class="wp-caption alignnone" style="width: 310px"><a title="prog_book_1" href="http://utweb.jp/blog/wp-content/uploads/2010/07/prog_book_1.jpg"><img src="http://utweb.jp/blog/wp-content/uploads/2010/07/prog_book_1-300x224.jpg" alt="ぱっと見でくじけそうになる人も！" title="prog_book_1" width="300" height="224" class="size-medium wp-image-844" /></a><p class="wp-caption-text">ぱっと見でくじけそうになる人も！</p></div><br />
もしかしたらスクリプトに慣れていない方はこのへんから難しく感じるかもしれません。でも、大重さんの本（というかプログラミング技術書全般）には読み方のコツがあって、長いスクリプトの中でも重要なのは1行だけだったりするので、あとのほうにその重要な1行を抜き出してちゃんと説明されてあるんです。<br />
<div id="attachment_846" class="wp-caption alignnone" style="width: 310px"><a title="prog_book_2" href="http://utweb.jp/blog/wp-content/uploads/2010/07/prog_book_2.jpg"><img src="http://utweb.jp/blog/wp-content/uploads/2010/07/prog_book_2-300x224.jpg" alt="ちゃんと重要なところを抜き出して説明してくれる！" title="prog_book_2" width="300" height="224" class="size-medium wp-image-846" /></a><p class="wp-caption-text">ちゃんと重要なところを抜き出して説明してくれる！</p></div><br />
なので長いスクリプトが苦手な方も、そこを読み飛ばして後から書かれてある重要なところだけを注目していけばいいのでそういう読み方をすれば安心です。<br />
シーンの移動に関してですが、前章でわざわざシーン構造だけを一章使って学習したことが活きてきます。シーン構造さえわかってしまえばProgressionは「前のシーンへ」「次のシーンへ」「上のシーンへ」「いきなり孫のシーンへ」などという便利なシーン移動がいろいろとできるので、この章はその移動方法が書かれただけですので一見スクリプトが多くてややこしいそうに見えますが、コツさえわかってしまえば易しいと思います。</li>
</ul>
</li>
<li>チャプター4：コマンドとコマンドリスト
<ul>
<li> ここから本の厚み的に後半に向かいます。<br />
コマンドもProgressionの機能の中核をなす技術の一つですが（ちなみにほかには、さっきやった「シーン」と次にやる「キャスト」）、配列を用いたSerialListとParalelListの入れ子など、かなり実践的な機能の紹介まで踏み込んで説明されています。<br />
あと173ページの虫がかわいいです。</li>
</ul>
</li>
<li>チャプター5：キャストオブジェクトを利用する
<ul>
<li>この章は全体から見るとさらっと流されているようにも見えますが、先ほどもいいましたようにProgression三本柱のひとつ（キャスト）について学習できます。<br />
僕が特に重要だと感じたのが、本で言うと185ページあたりに実際のFlashのムービークリップからCastMovieClipを作るやり方でして、これを知らないと多くの人が入門できたはいいけど実際のサイト作るにはどうしたらええのん？ってなっちゃうと思うんです。なのでこの説明からもこの本がより実践向けに書かれてあるんだなあと重ね重ね感じたのでした。</li>
</ul>
</li>
<li>チャプター6：外部ファイルの読み込みとプリロード
<ul>
<li> FlashのActionScriptの中でも特に難しいと感じる人が多いのが「外部ファイルの読み込み」だと思うんですが、Progressionはそこを比較的簡単に扱うことができます。<br />
簡単とはいっても、Progressionなりの書き方を覚えないといけないのはそれはもう仕方がないので、この章で勉強します。<br />
一括読み込みやリソース管理や先読み機能など、覚えるのも難しいけど自分で作るともっと難しい、つまり是非とも覚えて使いこなしたいかなり便利な機能もあります。<br />
こういった機能を、じっくり読みながら学習が進められるのも本ならではですね。</li>
</ul>
</li>
<li>チャプター7：さらに進んだ使い方
<ul>
<li>フルフラッシュサイトのディープリンク機能についてのつまづきやすい点の説明やカスタムコマンドなど基本的な機能をさらに突っ込んだ使い方からSWFをそのままシーンとして読み込む、リキッドレイアウトなどの夢のような機能までひととおり学習できます。<br />
ここまで読めば、もうProgression4の機能はひととおり学習したと言えますし、実際にFlashサイト制作に投入してもかなりの部分で応用できるようになるでしょう。</li>
</ul>
</li>
</ul>
<h3>総評</h3>
<p>気になった点としましては、たとえば82ページなどの「contentloaderInfo.bytesTotal」と「contentloaderInfo.bytesLoaded」など、説明ページの英数字が<del datetime="2010-07-19T12:11:35+00:00">半角全角がどちらかに統一されていないところでした。</del>文字の間隔がそれぞれ違うので少し見づらい点でした。見づらいのは説明文だけで、見たところソースコードなどは大丈夫だったので、問題はないんですがちょっと気になるな、というところです。<br />
<span style="font-size:0.9em">※大重さんより、半角全角統一されていないんじゃなくて、半角で統一されているけど均等割り付けで文字幅が広がっているとの事でした。長い単語を途中で改行しないようにするとどうしてもこうなってしまうらしいです。</span><br />
それ以外に関しては先ほどから繰り返し言ってきた言葉なんですが、この本はProgression4の機能紹介だけにとどまらず、実際に使う側の立場としてどう学習していけば本当にFlashサイトが作れるのかを突き詰めた「<strong>かなり実践的で使える参考書</strong>」だと感じました。<br />
僕の周りでも「Progression4の機能や出来ることについてはわかったし、今までも本やネットで基本的な作り方も学べたけど具体的に自分のFlashサイトでどう適用して良いのかわからない」といった声を多く聞きました。「<a href="http://amzn.to/cV5b54" target="_blank">詳細！Progression 4 Flashフレームワーク入門ノート</a>」は機能紹介から一歩踏み込んだ、まさに使えるようになるための入門ノートとして最適ではないでしょうか。<br />
Flashの開発環境はCS3/CS4/CS5にまたがって対応している点もありがたいですね。<br />
今日からでもこの本読みながら学習したことを仕事に投入していきます！</p>
<p>最後に、僕自身がProgressionのファンであり大重さん本のファンでもあるので、こんな僕のつたないレビューですが皆さんの購入の判断にちょっとでもお役に立てれば幸いです。</p>
<p>あ、あと本の中身の写真に関しては著作権を侵害しないよう最大限配慮したつもりですが、もし至らない点などありましたらお知らせください。</p>
]]></content:encoded>
			<wfw:commentRss>http://utweb.jp/blog/archives/834/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://utweb.jp/blog/archives/834" />
	</item>
		<item>
		<title>Progression4をいい感じにFlashBuilderで作業できるようにする</title>
		<link>http://utweb.jp/blog/archives/815</link>
		<comments>http://utweb.jp/blog/archives/815#comments</comments>
		<pubDate>Wed, 07 Jul 2010 15:01:29 +0000</pubDate>
		<dc:creator>正宗</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[FlashBuilder]]></category>
		<category><![CDATA[Progression]]></category>

		<guid isPermaLink="false">http://utweb.jp/blog/?p=815</guid>
		<description><![CDATA[Tweet
FlashBuilderはじめてみました。正宗です。
Progression4がFlashBuilderとの連携ができるようになっていたのがきっかけだったのと、あとFlashのコンパイル（パブリッシュ）がその [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Futweb.jp%2Fblog%2Farchives%2F815&amp;text=Progression4%E3%82%92%E3%81%84%E3%81%84%E6%84%9F%E3%81%98%E3%81%ABFlashBuilder%E3%81%A7%E4%BD%9C%E6%A5%AD%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B&amp;lang=en&amp;count=horizontal" style="" class="twitter-share-button">Tweet</a></div>
<p>FlashBuilderはじめてみました。正宗です。</p>
<p>Progression4がFlashBuilderとの連携ができるようになっていたのがきっかけだったのと、あとFlashのコンパイル（パブリッシュ）がその都度グラフィックを書き出し直すので時間がかかるようになったのが嫌でグラフィックはあらかじめswc書き出ししておいてFlashBuilderからasだけをコンパイルできるようになったらいいなと思ったので、FlashBuilderを使いこなせるように勉強してみることにしました。</p>
<p>常々お伝えしているように、うちのFlash請負制作業務のほぼ100%をProgressionフレームワークを使用していますので、ProgressionとFlashBuilderがうまいこと連携できていないと困ります。いろいろ試してみてうまい感じに連携できるようになったので書いておきたいと思います。</p>
<p>あとFlashBuilderについての本や情報が多いですがだいたいがFlex技術者向けになっていて、MXMLとか僕もよくわからないのですが僕のやりたいFlash開発とは微妙に違う気がするので、Flash向けにFlashBuilderの設定方法なんかの情報があっても良いなーと思っていたので、今回の記事はProgressionとあわせて是非ともマスターしたい技術だと思います。</p>
<h3><span id="more-815"></span>先ずはFlashを立ち上げて</h3>
<p>最初はFlashを立ち上げてProgressionプロジェクトを作成するところからはじめます。</p>
<div id="attachment_816" class="wp-caption alignnone" style="width: 310px"><a title="新規プロジェクトを作成" href="http://utweb.jp/blog/wp-content/uploads/2010/07/d12d66eea7bc86d8b40dee99ab888a4a.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/07/d12d66eea7bc86d8b40dee99ab888a4a-300x76.png" alt="はじまりはいつもFlash" title="新規プロジェクトを作成" width="300" height="76" class="size-medium wp-image-816" /></a><p class="wp-caption-text">はじまりはいつもFlash</p></div>
<div id="attachment_817" class="wp-caption alignnone" style="width: 310px"><a title="クラススタイル" href="http://utweb.jp/blog/wp-content/uploads/2010/07/d2db931f0a9236b9238e0374210ea9e0.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/07/d2db931f0a9236b9238e0374210ea9e0-300x233.png" alt="種類：「クラス」にするのを忘れないで！" title="クラススタイル" width="300" height="233" class="size-medium wp-image-817" /></a><p class="wp-caption-text">種類：「クラス」にするのを忘れないで！</p></div>
<div id="attachment_818" class="wp-caption alignnone" style="width: 310px"><a title="FlashBuilderに対応させる" href="http://utweb.jp/blog/wp-content/uploads/2010/07/a0ad78e2cd8f01a66b01028beb29134d.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/07/a0ad78e2cd8f01a66b01028beb29134d-300x233.png" alt="「FlashBuilderに対応させる」のチェックも忘れるな！" title="FlashBuilderに対応させる" width="300" height="233" class="size-medium wp-image-818" /></a><p class="wp-caption-text">「FlashBuilderに対応させる」のチェックも忘れるな！</p></div>
<p>プロジェクトの設定で気をつけるところはここまでです。<br />
おもむろに「作成」ボタンを押すとしばらくしてProgressionプロジェクトが作成されるはずです。</p>
<div id="attachment_821" class="wp-caption alignnone" style="width: 310px"><a title="プロジェクトが作成された" href="http://utweb.jp/blog/wp-content/uploads/2010/07/82c4df06b28409daa3f1e12876f4d600.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/07/82c4df06b28409daa3f1e12876f4d600-300x184.png" alt="できたできたー！" title="プロジェクトが作成された" width="300" height="184" class="size-medium wp-image-821" /></a><p class="wp-caption-text">できたできたー！</p></div>
<p>プロジェクトが出来てしまえばもうFlashには用がありません（ひどい）。<br />
Flashはそのまま終了しましょう。</p>
<h3>ここからFlashBuilderで作業する</h3>
<p>ここから先はFlashBuilderで作業します。長年使い慣れたFlashを捨てて慣れないFlashBuilderを使っての作業になりますのでかなりドキドキします。</p>
<p>FlashBuilderのワークスペースの概念はおわかりでしょうか？<br />
もしまだでしたら今後FlashBuilderを使っていくにあたってワークスペースはよく切り替えることになるのでこの記事を読む前に「Eclipse ワークスペース」などで調べておく事をお勧めします。それ以前にFlashBuilderとEclipse との関係についても調べておいて損はありません。<br />
ワークスペースやEclipseについてよくはわかってないけど、手っ取り早くこの記事を読む場合、「<strong>とりあえずワークスペースとは作業フォルダを決める事なので、先ほどProgressionプロジェクトを作成したフォルダーの一階層上を選択しておけば良い</strong>」とだけ覚えておいてください。<br />
（僕の理解度もだいたいそのへんです）</p>
<p>ワークスペースを決めたら、先ほど作ったProgressionプロジェクトフォルダをFlashBuilderに登録します。</p>
<div id="attachment_823" class="wp-caption alignnone" style="width: 310px"><a title="Flexプロジェクトを開く" href="http://utweb.jp/blog/wp-content/uploads/2010/07/d871abcb461ba7b134548c47a5272bbc.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/07/d871abcb461ba7b134548c47a5272bbc-300x52.png" alt="ファイルメニューから開く" title="Flexプロジェクトを開く" width="300" height="52" class="size-medium wp-image-823" /></a><p class="wp-caption-text">ファイルメニューから開く</p></div>
<p>FlashBuilderのメニュー「ファイル」→「Flexプロジェクトを読み込み」を選びます。</p>
<div id="attachment_824" class="wp-caption alignnone" style="width: 310px"><a title="プロジェクトフォルダーを選ぶ" href="http://utweb.jp/blog/wp-content/uploads/2010/07/23a902f8711d84ba6da65c57dc94d6d5.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/07/23a902f8711d84ba6da65c57dc94d6d5-300x140.png" alt="プロジェクトフォルダーからさっき作ったフォルダを選ぶ" title="プロジェクトフォルダーを選ぶ" width="300" height="140" class="size-medium wp-image-824" /></a><p class="wp-caption-text">プロジェクトフォルダーからさっき作ったフォルダを選ぶ</p></div>
<div id="attachment_825" class="wp-caption alignnone" style="width: 148px"><a title="読み込み" href="http://utweb.jp/blog/wp-content/uploads/2010/07/bb82949cf87d656aef993ac263abbeb0.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/07/bb82949cf87d656aef993ac263abbeb0-138x300.png" alt="うまく読み込めた！" title="読み込み" width="138" height="300" class="size-medium wp-image-825" /></a><p class="wp-caption-text">うまく読み込めた！</p></div>
<p>上手く読み込めました！</p>
<p>ただ、ファイル構成をよくよくみてみると、srcフォルダにあるはずのflaファイルがbin-debugフォルダにもコピーされるんですね。このままではまずいですよね。</p>
<p>どうしたらいいかというと解決方法は簡単で、srcフォルダにあるflaファイルを削除すればいいんです。<br />
index.fla と preloader.fla の二つを削除します。</p>
<p>で、Progressionプロジェクトを作った時に自動的に「Index.as」が「bin-debug/index.swf」にパブリッシュされるようにFlashBuilderプロジェクトを設定してくれているんですが、同じように「Preloader.as」ファイルを「bin-debug/preloader.swf」として書き出すようにFlashBuilderプロジェクトを設定し直す必要があります。</p>
<p>他にもFlashBuilderのみでパブリッシュできるようにFlashBuilderプロジェクトの設定をいろいろ変更しておきましょう。</p>
<h3>FlashBuilderプロジェクトの設定をいい感じに設定し直す</h3>
<p>FlashBuilderプロジェクトの設定を変更するには、プロジェクトそのものを右クリックして「プロパティ」を選びます。</p>
<div id="attachment_826" class="wp-caption alignnone" style="width: 269px"><a title="プロジェクトを右クリックで「プロパティ」" href="http://utweb.jp/blog/wp-content/uploads/2010/07/e614e993033d708aa8a01225093edcad.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/07/e614e993033d708aa8a01225093edcad-259x300.png" alt="プロジェクトを右クリックで「プロパティ」" title="プロジェクトを右クリックで「プロパティ」" width="259" height="300" class="size-medium wp-image-826" /></a><p class="wp-caption-text">プロジェクトを右クリックで「プロパティ」</p></div>
<div id="attachment_827" class="wp-caption alignnone" style="width: 310px"><a title="Flexコンパイラ" href="http://utweb.jp/blog/wp-content/uploads/2010/07/bdff880318ca258df7f18234c4aace5c.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/07/bdff880318ca258df7f18234c4aace5c-300x227.png" alt="Flexコンパイラでは「HTMLラッパーファイルの生成」のチェックを消す。Hey YO!" title="Flexコンパイラ" width="300" height="227" class="size-medium wp-image-827" /></a><p class="wp-caption-text">Flexコンパイラでは「HTMLラッパーファイルの生成」のチェックを消す。Hey YO!</p></div>
<p>「HTMLラッパーファイルの生成」の<strong>チェックを外す</strong>んですよ。つけるんじゃないですよ。</p>
<div id="attachment_828" class="wp-caption alignnone" style="width: 310px"><a title="Flexモジュールの追加" href="http://utweb.jp/blog/wp-content/uploads/2010/07/3e78bccb1e0b72508a3c4775c2480e21.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/07/3e78bccb1e0b72508a3c4775c2480e21-300x227.png" alt="Flexモジュールでは追加ボタンを押す" title="Flexモジュールの追加" width="300" height="227" class="size-medium wp-image-828" /></a><p class="wp-caption-text">Flexモジュールでは追加ボタンを押す</p></div>
<div id="attachment_829" class="wp-caption alignnone" style="width: 310px"><a title="モジュールの追加" href="http://utweb.jp/blog/wp-content/uploads/2010/07/3a0b69052ed28d1652683bfd9298cf46.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/07/3a0b69052ed28d1652683bfd9298cf46-300x169.png" alt="書き出されるswfファイル名の大文字小文字に気をつけて" title="モジュールの追加" width="300" height="169" class="size-medium wp-image-829" /></a><p class="wp-caption-text">書き出されるswfファイル名の大文字小文字に気をつけて</p></div>
<p>「モジュールの追加」画面で気をつける事と言ったら、通常「<strong>P</strong>reloader.as」からは「<strong>P</strong>reloader.swf」が書き出されようとするので、大文字小文字に気をつけることですね。index.htmlを書き換えたくないのであれば、ここで出力SWFのファイル名を「<strong>p</strong>reloader.swf」と小文字に直しておきましょう。<br />
モジュールSWFのサイズは「最適化しない」にしておきましょう。</p>
<p>これでFlashBuilderプロジェクトの設定は完了です。<br />
いろいろ警告が出るとは思いますが、警告文を良く読むとほとんどの方にとっては問題ないケースかと思われますので、理解して問題ないならOK連打で元の作業画面に戻りましょう。</p>
<div id="attachment_830" class="wp-caption alignnone" style="width: 154px"><a title="ファイルを一旦削除してみる" href="http://utweb.jp/blog/wp-content/uploads/2010/07/0f3cb4a2b65b1a51666b2508b0923be9.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/07/0f3cb4a2b65b1a51666b2508b0923be9-144x300.png" alt="選択したファイルを削除だ！" title="ファイルを一旦削除してみる" width="144" height="300" class="size-medium wp-image-830" /></a><p class="wp-caption-text">選択したファイルを削除だ！</p></div>
<p>あとはsrcのindex.fla 、preloader.fla、bin-debufのindex.swfとindex.fla、preloader.swfとpreloader.flaを削除してみましょう。</p>
<p>そしてFlashBuilderメニューの「プロジェクト」→「クリーン」で一回プロジェクトをやり直して、bin-debugフォルダにflaファイルが出来なくなって、さらにindex.swfとpreloader.swfが作られていればOKです！</p>
<p>あとはがんがん開発するのみ！よいProgression+FlashBuilderライフを！</p>
<h3>おまけ</h3>
<p>MacではFinderからswfを右クリックして「情報を見る」で</p>
<div id="attachment_831" class="wp-caption alignnone" style="width: 139px"><a title="情報を見る" href="http://utweb.jp/blog/wp-content/uploads/2010/07/c98eb53655efd7153d3991a2bdf764de.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/07/c98eb53655efd7153d3991a2bdf764de-129x300.png" alt="「このアプリケーションで開く」を設定" title="情報を見る" width="129" height="300" class="size-medium wp-image-831" /></a><p class="wp-caption-text">「このアプリケーションで開く」を設定</p></div>
<p>「このアプリケーションで開く」で Flash Player Debuggerを選んでおいてね。</p>
<h3>flaファイルは死んでしもうたん？</h3>
<p>このやり方ではindex.flaとpreloader.flaを大胆にも削除してしまうので、今後一切をasファイルで行わなければならなくなります。flaファイルは果たして使えないのでしょうか？</p>
<p>いいえ違います。</p>
<p>flaファイルはswc書き出しをするようにして、プロジェクトフォルダのlibsフォルダに突っ込むようにしましょう。<br />
InOutMovieコンポーネントなどを使ったMCをリンケージ書き出ししておけば、「タイムラインを上手く使いつつ爆速コーディング可能な」Progression4+FlashBuilderというなかなか厨房臭いほど最強なコーディング環境が整うかと思います。</p>
<p>これはかなり万人向けな便利スタイルですので、また今後是非とも掘り下げて紹介したいとおもいますが、swcを駆使してうまいことFlashBulderとFlashとの両立スタイルも研究していきましょう！</p>
]]></content:encoded>
			<wfw:commentRss>http://utweb.jp/blog/archives/815/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://utweb.jp/blog/archives/815" />
	</item>
		<item>
		<title>2010年新作名刺「湿布型名刺」</title>
		<link>http://utweb.jp/blog/archives/800</link>
		<comments>http://utweb.jp/blog/archives/800#comments</comments>
		<pubDate>Sun, 13 Jun 2010 11:14:23 +0000</pubDate>
		<dc:creator>頼子</dc:creator>
				<category><![CDATA[お知らせ]]></category>
		<category><![CDATA[作品紹介]]></category>
		<category><![CDATA[デザイン]]></category>
		<category><![CDATA[デザイン湿布]]></category>
		<category><![CDATA[プロダクト]]></category>
		<category><![CDATA[名刺]]></category>

		<guid isPermaLink="false">http://utweb.jp/blog/?p=800</guid>
		<description><![CDATA[Tweet
UTWEB、2010年度の新作名刺のお知らせです。
今回は湿布型名刺、正しくは湿布型というより湿布そのものです。
他人様の肩をお借りして、勝手に広告媒体にしてしまうという画期的なアイテム。
そして、激務な方の [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Futweb.jp%2Fblog%2Farchives%2F800&amp;text=2010%E5%B9%B4%E6%96%B0%E4%BD%9C%E5%90%8D%E5%88%BA%E3%80%8C%E6%B9%BF%E5%B8%83%E5%9E%8B%E5%90%8D%E5%88%BA%E3%80%8D&amp;lang=en&amp;count=horizontal" style="" class="twitter-share-button">Tweet</a></div>
<div id="attachment_799" class="wp-caption aligncenter" style="width: 236px"><a title="新型名刺" href="http://utweb.jp/blog/wp-content/uploads/2010/06/mamu.jpg"><img src="http://utweb.jp/blog/wp-content/uploads/2010/06/mamu-226x300.jpg" alt="いつもあなたに寄り添います―― utweb" title="湿布型名刺" width="226" height="300" class="size-medium wp-image-799" /></a><p class="wp-caption-text">いつもあなたに寄り添います―― utweb</p></div><br />
<div id="attachment_900" class="wp-caption aligncenter" style="width: 310px"><a href="http://utweb.jp/blog/wp-content/uploads/2010/06/meisi.jpg" title="湿布型名刺"><img src="http://utweb.jp/blog/wp-content/uploads/2010/06/meisi-300x225.jpg" alt="2枚1セットタイプです" title="meisi" width="300" height="225" class="size-medium wp-image-900" /></a><p class="wp-caption-text">2枚1セットタイプです</p></div>
<p>UTWEB、2010年度の新作名刺のお知らせです。<br />
今回は湿布型名刺、正しくは湿布型というより湿布そのものです。</p>
<p>他人様の肩をお借りして、勝手に広告媒体にしてしまうという画期的なアイテム。<br />
そして、激務な方の多いこの業界、少しでもその大事な身体を労ってほしい―、utwebからのささやかで押しつけがましい想いが込められています。</p>
<p>※一部の方から、鞄にしまっておくと鞄全体が湿布臭くなる、これから手渡す予定の資料が全部湿布臭くなった、という有難いご意見をいただき、この度微香性に生まれ変わりました。</p>
<p>ところで、この湿布型○○。<br />
デザインバーコードのように、この先未来があるんではないかと思っています。<br />
<span id="more-800"></span><br />
例えば、</p>
<div id="attachment_804" class="wp-caption aligncenter" style="width: 220px"><a title="サイボーグ湿布" href="http://utweb.jp/blog/wp-content/uploads/2010/06/aaa1.jpg"><img src="http://utweb.jp/blog/wp-content/uploads/2010/06/aaa1.jpg" alt="金属系のテクスチャを印刷" title="サイボーグ湿布" width="210" height="200" class="size-full wp-image-804" /></a><p class="wp-caption-text">金属系のテクスチャを印刷</p></div>
<p>貼ればたちまちサイボーグ。</p>
<div id="attachment_805" class="wp-caption aligncenter" style="width: 220px"><a title="つぎはぎ湿布" href="http://utweb.jp/blog/wp-content/uploads/2010/06/IMG.jpg"><img src="http://utweb.jp/blog/wp-content/uploads/2010/06/IMG.jpg" alt="ざっくりと縫った、つぎはぎ風湿布" title="つぎはぎ湿布" width="210" height="200" class="size-full wp-image-805" /></a><p class="wp-caption-text">ざっくりと縫った、つぎはぎ風湿布</p></div>
<p>貼ればたちまち昔ながらの貧乏人。<br />
などなど夢は膨らむばかり。<br />
プロダクト関係でのご相談もUTWEBはお待ちしております。</p>
]]></content:encoded>
			<wfw:commentRss>http://utweb.jp/blog/archives/800/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://utweb.jp/blog/archives/800" />
	</item>
		<item>
		<title>jQuery,ActionScript,Progressionで関数を登録する際に引数を渡す</title>
		<link>http://utweb.jp/blog/archives/789</link>
		<comments>http://utweb.jp/blog/archives/789#comments</comments>
		<pubDate>Sat, 12 Jun 2010 04:47:53 +0000</pubDate>
		<dc:creator>正宗</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://utweb.jp/blog/?p=789</guid>
		<description><![CDATA[Tweet
子供時代は痩せてたので口の悪い上級生から「ホネホネロック」とからかわれていましたが、その呼ばれ方、けっこう気に入ってました。正宗です。
JavaScriptでもActionScriptでも、関数を登録する場面 [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Futweb.jp%2Fblog%2Farchives%2F789&amp;text=jQuery%2CActionScript%2CProgression%E3%81%A7%E9%96%A2%E6%95%B0%E3%82%92%E7%99%BB%E9%8C%B2%E3%81%99%E3%82%8B%E9%9A%9B%E3%81%AB%E5%BC%95%E6%95%B0%E3%82%92%E6%B8%A1%E3%81%99&amp;lang=en&amp;count=horizontal" style="" class="twitter-share-button">Tweet</a></div>
<p>子供時代は痩せてたので口の悪い上級生から「ホネホネロック」とからかわれていましたが、その呼ばれ方、けっこう気に入ってました。正宗です。</p>
<p>JavaScriptでもActionScriptでも、関数を登録する場面ってけっこうよくあって、ActionScriptでいえば特にaddEventListenerですね。そんなときに引数を渡したい事もあると思うんです。<br />
その方法を書いておきたいと思います。<br />
<span id="more-789"></span></p>
<h3>jQuery（JavaScript）の場合</h3>
<pre class="javascript">jQuery<span style="color: #66cc66;">&#40;</span> <span style="color: #3366CC;">'#hogehoge'</span> <span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">load</span><span style="color: #66cc66;">&#40;</span> <span style="color: #3366CC;">'nanika.html'</span>, myFunc <span style="color: #66cc66;">&#41;</span>;
<span style="color: #003366; font-weight: bold;">function</span> myFunc<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span> <span style="color: #3366CC;">'こんにちは'</span> <span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre>
<p>こういうやつのmyFuncに引数を渡したいとき。</p>
<pre class="javascript">jQuery<span style="color: #66cc66;">&#40;</span> <span style="color: #3366CC;">'#hogehoge'</span> <span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">load</span><span style="color: #66cc66;">&#40;</span> <span style="color: #3366CC;">'nanika.html'</span>, myFunc<span style="color: #66cc66;">&#40;</span> <span style="color: #3366CC;">'こんにちは'</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
<span style="color: #003366; font-weight: bold;">function</span> myFunc<span style="color: #66cc66;">&#40;</span> argment <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span>argment<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>渡され先でreturn functionするのがコツです。コツなのです！</p>
<h3>ActionScriptの場合</h3>
<p>どんどんいきましょう</p>
<pre class="actionscript">_mc.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> MouseEvent.<span style="color: #006600;">CLICK</span>, __click__<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">'クリックされたよ'</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
functioin __click__<span style="color: #66cc66;">&#40;</span> argment <span style="color: #66cc66;">&#41;</span>:<span style="color: #000000; font-weight: bold;">Function</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">e</span>:MouseEvent <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> argment <span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<h3>Progressionの場合</h3>
<p>こういう書き方が出来るってことはProgressionのaddCommand内でも使えるはず！</p>
<pre class="actionscript"> <span style="color: #000000; font-weight: bold;">new</span> SerialList<span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">null</span>,
	myFunc<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">'コマンドにFunctionを登録するときにも引数がわたせる'</span> <span style="color: #66cc66;">&#41;</span>,
	myFunc<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">'どんどん渡そう'</span> <span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">function</span> myFunc<span style="color: #66cc66;">&#40;</span> argment <span style="color: #66cc66;">&#41;</span>:<span style="color: #000000; font-weight: bold;">Function</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><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> argment <span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<h3>何故こうなるの？</h3>
<p>書き方だけわかっても、理屈がわからないと気持ち悪いですよね。一見意味不明な書き方にも見えるし、まる覚えしないと次もういちど書けないようでは身につけたとは言えません。<br />
僕なりに解釈した考え方を書いていこうと思います。<br />
ちなみに型が明記できるActionScriptで書いていきます。</p>
<h4>function は（）で実行される</h4>
<pre class="actionscript"><span style="color: #000000; font-weight: bold;">function</span> myFunc<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;">'hogehoge'</span> <span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #808080; font-style: italic;">//関数を実行</span>
myFunc<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span>;</pre>
<p>当たり前のルールなんですが、一度作った関数は、その関数の名前のお尻に() 「括弧」を付ける事で実行されます。<br />
ということは逆に言うと括弧を付けないと実行されないという事です。</p>
<h4>関数を実行せずとりあえず登録だけしておく</h4>
<pre class="actionscript"><span style="color: #000000; font-weight: bold;">function</span> myFunc<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">e</span>:MouseEvent <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;">'クリックされました'</span> <span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
_mc.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> MouseEvent.<span style="color: #006600;">CLICK</span>, myFunc <span style="color: #66cc66;">&#41;</span>;</pre>
<p>こういう書き方をしている場合、ようは「マウスクリックされたときにmyFuncっていう関数を実行してね」と書いている訳です。</p>
<pre class="actionscript">_mc.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> MouseEvent.<span style="color: #006600;">CLICK</span>, myFunc<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//まちがい</span></pre>
<p>こう書いちゃうと、マウスクリックの時に実行してほしい関数なのに今実行してしまいます。<br />
つまり、「あとで実行したい関数は、名前だけ登録しておく」のが正解なわけで、通常はそう書いている訳ですね。</p>
<h4>関数の「戻り値」をおさらいしよう</h4>
<p>本来関数を登録だけしておくはずの場所で、あえて実行する訳ですから通常だとエラーなわけです。間違いです。そこをあえて実行してみた場合、スクリプトの世界ではどのような事が行われるでしょうか。<br />
その謎を考える前に関数の「戻り値」というやつをもう一回おさらいしてみます。</p>
<pre class="actionscript"><span style="color: #000000; font-weight: bold;">function</span> myFunc1<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> :<span style="color: #0066CC;">int</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">100</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">var</span> a:<span style="color: #0066CC;">int</span> = myFunc1<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//変数aには数字の100が入る</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> myFunc2<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> :<span style="color: #0066CC;">String</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #ff0000;">&quot;こんにちは&quot;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">var</span> b:<span style="color: #0066CC;">String</span> = myFunc2<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//変数bには文字の「こんにちは」が入る</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> myFunc2<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> :<span style="color: #0066CC;">Object</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #66cc66;">&#123;</span> test:<span style="color: #ff0000;">&quot;ごはんおいしいです&quot;</span> <span style="color: #66cc66;">&#125;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">var</span> c:<span style="color: #0066CC;">Object</span> myFunc3<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//変数cにはObjectが入る</span></pre>
<h4>関数が関数を返す</h4>
<p>結論から言うと、イベントリスナーやコールバック関数など、「関数を今実行せず登録だけしておく」場所で「あえて実行させてみる」わけですから、そこで実行された関数が関数を返してしまえばいい、とある頭のいい誰かが考えた訳ですね。</p>
<pre class="actionscript"><span style="color: #000000; font-weight: bold;">function</span> myFunc<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> :<span style="color: #000000; font-weight: bold;">Function</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">function</span><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: #cc66cc;">1</span><span style="color: #cc66cc;">+1</span> <span style="color: #66cc66;">&#41;</span>; <span style="color: #66cc66;">&#125;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">var</span> f:<span style="color: #000000; font-weight: bold;">Function</span> = myFunc<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//変数fに関数が入る</span>
f<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//関数が実行され1+1の計算結果が表示される</span></pre>
<p>たとえばイベントリスナーの第二引数には</p>
<pre class="actionscript"><span style="color: #000000; font-weight: bold;">function</span> <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: #66cc66;">&#125;</span></pre>
<p>この形が入れば言い訳ですから、</p>
<pre class="actionscript"><span style="color: #000000; font-weight: bold;">function</span> myFunc<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> :Functioin <span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">function</span> <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: #66cc66;">&#125;</span>;
<span style="color: #66cc66;">&#125;</span></pre>
<p>こういう形を返す関数を作っておいて</p>
<pre class="actionscript">_mc.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> Event.<span style="color: #006600;">ENTER_FRAME</span>, myFunc<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;</pre>
<p>こういうふうにイベントリスナーの登録時にはmyFuncを実行してしまえば、関数が返ってくるので、その返ってきた関数のほうをイベントリスナーは登録してくれる、というのがこの書き方の謎の正体です。</p>
<p>はじめに発見した人はそうとう頭良いと思います。ぼくはこの理屈を発見したとき芸術性すら感じました。<br />
実用性もさることながら、こういった動作の合理性を考えていくのもかなり楽しいです。昔中学校の技術の時間にエンジンの仕組みを勉強して以来、その動作の合理性に魅せられて車オタクバイクオタクというよりはエンジンオタクになったのを思い出します。</p>
]]></content:encoded>
			<wfw:commentRss>http://utweb.jp/blog/archives/789/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://utweb.jp/blog/archives/789" />
	</item>
		<item>
		<title>Progressionのリファレンスの場所</title>
		<link>http://utweb.jp/blog/archives/784</link>
		<comments>http://utweb.jp/blog/archives/784#comments</comments>
		<pubDate>Fri, 11 Jun 2010 01:06:26 +0000</pubDate>
		<dc:creator>正宗</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://utweb.jp/blog/?p=784</guid>
		<description><![CDATA[Tweet
小ネタの備忘録なんですが、Progressionをインストールしたときに自動的にリファレンスもローカルに保存されます。リファレンスは読み方さえわかれば、非常に有用な情報源なのでブックマークしておくと何かと便利 [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Futweb.jp%2Fblog%2Farchives%2F784&amp;text=Progression%E3%81%AE%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%E3%81%AE%E5%A0%B4%E6%89%80&amp;lang=en&amp;count=horizontal" style="" class="twitter-share-button">Tweet</a></div>
<p>小ネタの備忘録なんですが、Progressionをインストールしたときに自動的にリファレンスもローカルに保存されます。リファレンスは読み方さえわかれば、非常に有用な情報源なのでブックマークしておくと何かと便利です。<br />
ちなみにアドレスの「Flash%20CS5」と なっている部分はFlashCSのバージョンです。この場合はCS5の例です。</p>
<p>Windowsの場合（vista）<br />
file:///C:/Users/＜ユーザー名＞/AppData/Local/Adobe/Flash%20CS5/ja/Configuration/Progression/Help/ASDoc/index.html</p>
<p>Macの場合（Snow Leopard）<br />
file:///Users/＜ユーザー名＞/Library/Application%20Support/Adobe/Flash%20CS5/ja_JP/Configuration/Progression/Help/ASDoc/index.html</p>
<p>あわせてActionScriptそのもののリファレンスのローカルの場所を探す場合には次の記事も参考にしてみてください。<br />
<a href="http://utweb.jp/blog/archives/247">ActionScriptリファレンスをダウンロードする</a></p>
]]></content:encoded>
			<wfw:commentRss>http://utweb.jp/blog/archives/784/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://utweb.jp/blog/archives/784" />
	</item>
		<item>
		<title>大阪ひよこの会　第一回ミーティングを行いました</title>
		<link>http://utweb.jp/blog/archives/778</link>
		<comments>http://utweb.jp/blog/archives/778#comments</comments>
		<pubDate>Mon, 07 Jun 2010 03:38:23 +0000</pubDate>
		<dc:creator>正宗</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[勉強会]]></category>

		<guid isPermaLink="false">http://utweb.jp/blog/?p=778</guid>
		<description><![CDATA[Tweet
「いまさら他人に聞けないFlashの基礎的な何かを勉強する」という名目ではじまった勉強会、「大阪ひよこの会」の第一回ミーティングを開催しました。
場所は株式会社オノフ様のミーティングスペースをお借りしました。 [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Futweb.jp%2Fblog%2Farchives%2F778&amp;text=%E5%A4%A7%E9%98%AA%E3%81%B2%E3%82%88%E3%81%93%E3%81%AE%E4%BC%9A%E3%80%80%E7%AC%AC%E4%B8%80%E5%9B%9E%E3%83%9F%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%92%E8%A1%8C%E3%81%84%E3%81%BE%E3%81%97%E3%81%9F&amp;lang=en&amp;count=horizontal" style="" class="twitter-share-button">Tweet</a></div>
<p><a title="大阪ひよこの会第一回ミーティング" href="http://utweb.jp/blog/wp-content/uploads/2010/06/osaka_vol1.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/06/osaka_vol1-300x83.png" alt="大阪ひよこの会第一回ミーティング" title="大阪ひよこの会第一回ミーティング" width="300" height="83" class="alignnone size-medium wp-image-779" /></a>「<strong>いまさら他人に聞けないFlashの基礎的な何かを勉強する</strong>」という名目ではじまった勉強会、<a href="http://atnd.org/events/4927" target="_blank">「大阪ひよこの会」の第一回ミーティング</a>を開催しました。<br />
場所は<a href="http://www.onoff.ne.jp/">株式会社オノフ</a>様のミーティングスペースをお借りしました。<br />
今回は第一回という事で勉強会の方向性なんかを話し合った訳ですが、その模様を書いておきたいと思います。<br />
<span id="more-778"></span><br />
まずはひよこの会の発足に至った経緯なんかは、こちらにスライドをアップしておきました。<br />
<a href="http://utweb.jp/samples/as3practice/piyo1/osakapiyo_mtg1.pdf" target="_blank">スライド(PDF)</a></p>
<p>そして<a href="http://www.project-nya.jp/modules/weblog/details.php?blog_id=1212" target="_blank">ひろゆきさんの記事はこちら！</a></p>
<p>Flashに限らずものごとには基礎が必要なんですが、この基礎の学習という奴がえらく退屈でわけわからんものが多いんですよね。晴子さんにイイカッコ見せたくてバスケ部に入ったのに最初はドリブルの練習ばっかりみたいな。<br />
この基礎を通り越してしまえば、あとは楽しい世界が開ける訳でして、絵が思った通りグリグリ動かせて楽しいとか、思った通りいかなくてもそれがちょっとしたパズルみたいで楽しいとか、何をやっても楽しくなる訳ですが、いかんせん基礎を通り越すまでが恐ろしくわけわからないつまらない部分が続きます。</p>
<p>なのでこのFlashの初歩的な部分をみんなで集まって楽しく勉強したらいいんじゃないっていう集まりがひよこの会になります。</p>
<p>ちなみにいつも形から入る僕のスキルはというと自称上級者といううさんくさいやつでして、基礎的な初歩的な事はわかってなかったりするのでこの機会に皆さんと一緒に勉強していけたらと思います！お手柔らかによろしくおねがいします！</p>
<h3>先ずは結論から</h3>
<p>いきなりですがミーティングで決まった事から書いていきます。ざくざくっと。</p>
<ul>
<li>マニアックに走りすぎない。あくまで初心者のひよこの会なのでテーマをマニアックなことに持っていかないよう心がける。「隣の人に聞ける」とかそういう場。</li>
<li>かといって初心者こそ「この質問がどのレベルなのか」判断できないもの。とりあえずはひよこの会では初心者の全ての質問を受け付けておいて今後「たまごの会」とか「にわとりの会」とか分科会が出来れば良いなあ。</li>
<li>目標は月一回だがまずは年六回の開催を。</li>
<li>場所はなるべく無料でお借りできるところを持ち回りで。</li>
<li>今のところTwitterで運営してATNDで募集する形。今後必要になってくれば掲示板などのツールを増やしても良いかな？</li>
<li>誰かに負担が集中する事を極力避ける。</li>
<li>会の報告なども、いまのところ各自のブログにまとめるなど参加者の自主性に全面的に頼る事にする。</li>
</ul>
<p>運営に関してはこんなところですか。まあまだ実際に勉強会を一回もやった事が無い会なので、ツールや受け皿については追々きめていけばいいかと思います。<br />
基本的に僕があんまり何もやらない派だし、ひろゆきさんはものすごく几帳面な方ですので、誰かに負担がかかるとするとそれは絶対ひろゆきさんにかかると思います（苦笑）！そうならないためにも、<strong>ひよこの会は皆さん の自主性で成り立っていますので是非積極的な参加をよろしくお願いします！！ </strong></p>
<p>いちおう次回からは早速勉強会をはじめるわけですが、次回のテーマは「みんなが明かす勉強法公開！」となっています。開催日時はまだ未定。</p>
<h3>初心者勉強会の意義とか</h3>
<p>ここから先は僕のゴタクになります…。</p>
<p>僕はFlashを触り始めて10年ですがActionScript3を触り始めてまだ3年目です。Flashではベテランのほうだと思いますしAS3では初心者です。もともと建築作業員でして工事現場で働きながら家で独学でFlashを勉強してきたのでもとからプログラムが得意だった訳でもないですし、初心者の苦労や基礎の難しさを現在進行形で味わっている一人でもありますし、10年やってきてFlashの楽しさを少しでも多くの人に伝えたい人間でもあります。</p>
<p>僕自身が「誰とでも声をかけたらすぐ仲良くなる」ような社交的なタイプでもないので、誰に対しても気後れしてしまって人と全然仲良くなれなかったりするほうでして、常々「こんな自分でもFlasherと仲良くなるにはFlashの話題をする場を作るしか無い！」と考えていました。名刺交換してもうまく仲良くなれませんが、目の前でPCを開いて一緒にFlashを見たりするのはたまらなく嬉しい訳です。</p>
<p>正直にいうと初心者勉強会と言っても、学校でしっかり管理されたカリキュラムとかそういうのではないので、どこまで効果的な学習が出来るかと言うと疑問が残ります。でも、Flashが楽しくなる前段階に必要な基礎の部分をみんなで持ち寄ってなるべく楽しく勉強して交流を深める事にはとても意義があると思います。</p>
<p>どうしても僕がうだうだと意見を書いていくとなんか変なテンションになっちゃうので、ひよこの会の意義なんかについては是非ともATNDやTwitter上の皆さんの意見を参考にしていただくとして、今後もみなさんの積極的な参加をお待ちしておりますよ！</p>
<ul></ul>
]]></content:encoded>
			<wfw:commentRss>http://utweb.jp/blog/archives/778/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://utweb.jp/blog/archives/778" />
	</item>
		<item>
		<title>Progression4でコンポーネントスタイルとクラススタイルを行き来する</title>
		<link>http://utweb.jp/blog/archives/740</link>
		<comments>http://utweb.jp/blog/archives/740#comments</comments>
		<pubDate>Wed, 19 May 2010 15:05:32 +0000</pubDate>
		<dc:creator>正宗</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Progression]]></category>
		<category><![CDATA[セミナー]]></category>
		<category><![CDATA[勉強会]]></category>

		<guid isPermaLink="false">http://utweb.jp/blog/?p=740</guid>
		<description><![CDATA[Tweet
先日書きました、Progressionのコンポーネントとクラスを混在させるやり方の記事を、コンポーネントスタイルからの視点で書きました。いちおうProgressionのコンポーネントでの作成スタイルを一回でも [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Futweb.jp%2Fblog%2Farchives%2F740&amp;text=Progression4%E3%81%A7%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E3%81%A8%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E3%82%92%E8%A1%8C%E3%81%8D%E6%9D%A5%E3%81%99%E3%82%8B&amp;lang=en&amp;count=horizontal" style="" class="twitter-share-button">Tweet</a></div>
<p>先日書きました、Progressionのコンポーネントとクラスを混在させるやり方の記事を、コンポーネントスタイルからの視点で書きました。いちおうProgressionのコンポーネントでの作成スタイルを一回でもやった方を対象に書いています。もしまだProgressionのコンポーネントスタイルを試されてない方は最初はそっちをやってみないと意味が分からないと思うし、このスタイルが何故必要なのかもわかりにくいかと思います。<br />
それでも一般に誤解されているようにコンポーネントは初心者だけがやるものではなく、こういった工夫一つで非常に表現力の高いサイトを作ることもできるので、ぜひ参考にしてもらってみなさんのProgressonライフに役立てば幸いです。</p>
<h3><span id="more-740"></span>第一章：index.flaをクラスでもコンポーネントでも使えるようにしておく</h3>
<h4>最初はクラススタイルでプロジェクトを作成</h4>
<div id="attachment_743" class="wp-caption alignnone" style="width: 310px"><a title="ピクチャ 2" href="http://utweb.jp/blog/wp-content/uploads/2010/05/2bfc96a45921677282a36721a07709ca.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/2bfc96a45921677282a36721a07709ca-300x80.png" alt="メニューの「コマンド」→「プロジェクトを作成する」を選ぶ！" title="ピクチャ 2" width="300" height="80" class="size-medium wp-image-743" /></a><p class="wp-caption-text">メニューの「コマンド」→「プロジェクトを作成する」を選ぶ！</p></div>
<div id="attachment_744" class="wp-caption alignnone" style="width: 310px"><a title="ピクチャ 3_on" href="http://utweb.jp/blog/wp-content/uploads/2010/05/b04b0a5e218dada35ca5d8babaa8b9fd.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/b04b0a5e218dada35ca5d8babaa8b9fd-300x233.png" alt="最初、プロジェクトの種類は「クラス」を選んでおく。 プロジェクト名、書き出し先のチェックも忘れずに。" title="ピクチャ 3_on" width="300" height="233" class="size-medium wp-image-744" /></a><p class="wp-caption-text">最初、プロジェクトの種類は「クラス」を選んでおく。 プロジェクト名、書き出し先のチェックも忘れずに。</p></div>
<p>プロジェクトの設定はもう少し続きます。</p>
<div id="attachment_745" class="wp-caption alignnone" style="width: 310px"><a title="ピクチャ 4_on" href="http://utweb.jp/blog/wp-content/uploads/2010/05/a5ed3c871c675da3cfb1fec0a4ca7568.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/a5ed3c871c675da3cfb1fec0a4ca7568-300x233.png" alt="パッケージパスには最初何も書かれていないのでここでは 「classes」と書いておく。 メインクラス名がちゃんと「Index」となっているかも 確認しておく。" title="ピクチャ 4_on" width="300" height="233" class="size-medium wp-image-745" /></a><p class="wp-caption-text">パッケージパスには最初何も書かれていないのでここでは 「classes」と書いておく。 メインクラス名がちゃんと「Index」となっているかも 確認しておく。</p></div>
<p>デフォルトではパッケージパスに何も書かれてないので、ここにとりあえず「classes」と追加。メインクラス名ってところはデフォルトで「Index」ってなってるはずなので、それを確認しておきます。<br />
「FlashBuildefに対応させる」「FlashDevelopに対応させる」も、今は必要ないかもしれませんがとりあえずチェック入れておけば後々便利になります。</p>
<p>以上の設定をチェックしたら「作成する」ボタンを押してプロジェクトを作成してください。<br />
しばらく待った後、書き出し先のディレクトリに自動的にこんな感じのディレクトリ構造が出来上がるはずです。</p>
<div id="attachment_746" class="wp-caption alignnone" style="width: 310px"><a title="ピクチャ 5" href="http://utweb.jp/blog/wp-content/uploads/2010/05/1f44c9c5972ade339f3e4b2d83d3c1e0.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/1f44c9c5972ade339f3e4b2d83d3c1e0-300x148.png" alt="ここまでひとりで出来てはじめておとな。" title="ピクチャ 5" width="300" height="148" class="size-medium wp-image-746" /></a><p class="wp-caption-text">ここまでひとりで出来てはじめておとな。</p></div>
<h4>クラススタイルで作成されたindex.flaをコンポーネントにしなおす</h4>
<p>プロジェクトを書き出すことは出来ましたが、このままではただのクラススタイルの開発になってしまいます。これをコンポーネントで扱えるように少し手を入れます。</p>
<h4>先ずはドキュメントクラスを削除します</h4>
<p>ステージのプロパティに、ドキュメントクラスを設定するところがあって、Progressionでクラススタイルを選択してプロジェクトを作成すると自動的にここが設定されています。コンポーネントスタイルで動かす場合にはこのドキュメントクラスは必要ないので削除しておきます。</p>
<div id="attachment_747" class="wp-caption alignnone" style="width: 310px"><a title="ピクチャ 6_on0" href="http://utweb.jp/blog/wp-content/uploads/2010/05/41b7f933648786498ed6a1ae667af5d2.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/41b7f933648786498ed6a1ae667af5d2-300x259.png" alt="ドキュメントクラスを探して！" title="ピクチャ 6_on0" width="300" height="259" class="size-medium wp-image-747" /></a><p class="wp-caption-text">ドキュメントクラスを探して！</p></div>
<div id="attachment_748" class="wp-caption alignnone" style="width: 310px"><a title="ピクチャ 6_on1" href="http://utweb.jp/blog/wp-content/uploads/2010/05/8397ace09d911eb9f48c49f334e71135.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/8397ace09d911eb9f48c49f334e71135-300x259.png" alt="男なら消すときはためらわず！でもためらって消しても結果は同じ！" title="ピクチャ 6_on1" width="300" height="259" class="size-medium wp-image-748" /></a><p class="wp-caption-text">男なら消すときはためらわず！でもためらって消しても結果は同じ！</p></div>
<p>ステージにコンポーネントを置いていきます</p>
<div id="attachment_750" class="wp-caption alignnone" style="width: 213px"><a title="ピクチャ 7" href="http://utweb.jp/blog/wp-content/uploads/2010/05/564bed646e82e4fa3756c6184c9dede1.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/564bed646e82e4fa3756c6184c9dede1-203x300.png" alt="メニューの「ウインドウ」→「コンポーネント」からコンポーネントパネルを開きます" title="ピクチャ 7" width="203" height="300" class="size-medium wp-image-750" /></a><p class="wp-caption-text">メニューの「ウインドウ」→「コンポーネント」からコンポーネントパネルを開きます</p></div>
<div id="attachment_751" class="wp-caption alignnone" style="width: 218px"><a title="ピクチャ 8" href="http://utweb.jp/blog/wp-content/uploads/2010/05/449343aef116ef2df8df54c34d2f7142.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/449343aef116ef2df8df54c34d2f7142.png" alt="使うのはProgressionConfigのWebConfigとProgressionLoaderのEasyCastingLoaderのふたつです" title="ピクチャ 8" width="208" height="300" class="size-full wp-image-751" /></a><p class="wp-caption-text">使うのはProgressionConfigのWebConfigとProgressionLoaderのEasyCastingLoaderのふたつです</p></div>
<div id="attachment_764" class="wp-caption alignnone" style="width: 310px"><a title="ピクチャ 18_on" href="http://utweb.jp/blog/wp-content/uploads/2010/05/7719ddf4726c1177947bfb08f9bd947e.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/7719ddf4726c1177947bfb08f9bd947e-300x287.png" alt="置きましょう" title="ピクチャ 18_on" width="300" height="287" class="size-medium wp-image-764" /></a><p class="wp-caption-text">置きましょう</p></div>
<p>コンポーネントパネルからWebConfigコンポーネントとEasyCastingLoaderコンポーネントの二つをステージ上にドラッグ＆ドロップして置きます。これらはステージ上のどこに置いてもいいです。SWF時には表示されません。</p>
<h4>コンポーネントを設定する</h4>
<p>いよいよ大詰めです。</p>
<p>コンポーネントインスペクタからコンポーネントの設定を行いましょう。</p>
<div id="attachment_754" class="wp-caption alignnone" style="width: 295px"><a title="ピクチャ 11_on" href="http://utweb.jp/blog/wp-content/uploads/2010/05/3080eed3522d0052a6cd8de16e878262.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/3080eed3522d0052a6cd8de16e878262.png" alt="コンポーネントインスペクタを呼び出す鍵はここらへんにあります" title="ピクチャ 11_on" width="285" height="128" class="size-full wp-image-754" /></a><p class="wp-caption-text">コンポーネントインスペクタを呼び出す鍵はここらへんにあります</p></div>
<p>コンポーネントインスペクタとやらの出し方がわからない方は、コンポーネントを選択したときのポロパティウインドウのここらへんのボタンを押してみてください。</p>
<p>先ずはWebConfigコンポーネントから</p>
<div id="attachment_755" class="wp-caption alignnone" style="width: 310px"><a title="ピクチャ 12" href="http://utweb.jp/blog/wp-content/uploads/2010/05/7943c8b05006ef1ddcdda604c8b4508e.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/7943c8b05006ef1ddcdda604c8b4508e-300x117.png" alt="とりあえずこうなっていればよし" title="ピクチャ 12" width="300" height="117" class="size-medium wp-image-755" /></a><p class="wp-caption-text">とりあえずこうなっていればよし</p></div>
<p>EasyCastingLoaderは次のような感じです</p>
<div id="attachment_765" class="wp-caption alignnone" style="width: 310px"><a title="ピクチャ 19" href="http://utweb.jp/blog/wp-content/uploads/2010/05/cc621d8f0a994b74e80d6633f1ac1055.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/cc621d8f0a994b74e80d6633f1ac1055-300x179.png" alt="urlのところには恥ずかしがらずに「easycasting.xml」と書こー！" title="ピクチャ 19" width="300" height="179" class="size-medium wp-image-765" /></a><p class="wp-caption-text">urlのところには恥ずかしがらずに「easycasting.xml」と書こー！</p></div>
<p>syncのところは「true」urlのところは「easycasting.xml」と書いておきます。<br />
ここらへんのEasyCastingLoaderコンポーネントの詳しい設定は是非Progression公式サイトのコンポーネントリファレンスをお読みください。</p>
<h4>あとはシーンエディタでシーンを作るのみ</h4>
<div id="attachment_758" class="wp-caption alignnone" style="width: 271px"><a title="ピクチャ 14" href="http://utweb.jp/blog/wp-content/uploads/2010/05/778276101ac939f6d99b983de4db1c8b.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/778276101ac939f6d99b983de4db1c8b-261x300.png" alt="どんな優れた技術でも、残念なサイトを作るのが得意な正宗の手にかかっては形無しだ！" title="ピクチャ 14" width="261" height="300" class="size-medium wp-image-758" /></a><p class="wp-caption-text">どんな優れた技術でも、残念なサイトを作るのが得意な正宗の手にかかっては形無しだ！</p></div>
<p>あとはシーンエディタで自由にシーンを作ってください。ここらへんからは通常のコンポーネントスタイルと全く変わりません。</p>
<div id="attachment_759" class="wp-caption alignnone" style="width: 310px"><a title="ピクチャ 15" href="http://utweb.jp/blog/wp-content/uploads/2010/05/0e3e4a93e982b22341d34f0b36434aa5.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/0e3e4a93e982b22341d34f0b36434aa5-300x241.png" alt="最後にbin-debugディレクトリにeasycasting.xmlとして保存すればOK" title="ピクチャ 15" width="300" height="241" class="size-medium wp-image-759" /></a><p class="wp-caption-text">最後にbin-debugディレクトリにeasycasting.xmlとして保存すればOK</p></div>
<p>これで最初はクラススタイルとして書き出したプロジェクトをコンポーネントスタイルで開発するように準備ができました。<br />
手順を細かく説明したのでステップ数が多く複雑に見えますが、実際にはちょっとした手間だけで済みます。</p>
<h3>第二章：同じ事をpreloader.flaでもできる</h3>
<p>このテクニックはpreloaderでも使えるので、たとえばindex.flaは普通にクラススタイルで作るけどpreloader.flaはコンポーネントでさくっと作りたい、またはその逆でindex.flaはコンポーネントで作ったけど、いろいろpreloaderのほうであらかじめ処理しておきたいことがあるのでpreloader.flaだけはクラスで作りたい、といったスタイルにも便利に使えます。</p>
<p>やることはindex.flaと同じ考え方です。</p>
<div id="attachment_762" class="wp-caption alignnone" style="width: 284px"><a title="ピクチャ 16_on" href="http://utweb.jp/blog/wp-content/uploads/2010/05/b011fe3d3a739ecb2c1aed2d40d618921.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/b011fe3d3a739ecb2c1aed2d40d618921.png" alt="ドキュメントクラスを消して！" title="ピクチャ 16_on" width="274" height="225" class="size-full wp-image-762" /></a><p class="wp-caption-text">ドキュメントクラスを消して！</p></div>
<p>preloader.flaのドキュメントクラスを消しておいて</p>
<div id="attachment_761" class="wp-caption alignnone" style="width: 310px"><a title="ピクチャ 17" href="http://utweb.jp/blog/wp-content/uploads/2010/05/4e1684c02258f8ad934606cb2b9802bc.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/4e1684c02258f8ad934606cb2b9802bc-300x163.png" alt="こんどはPreloaderコンポーネントをドラッグ＆ドロップします" title="ピクチャ 17" width="300" height="163" class="size-medium wp-image-761" /></a><p class="wp-caption-text">こんどはPreloaderコンポーネントをドラッグ＆ドロップします</p></div>
<p>ステージにPreloaderコンポーネントをドラッグ＆ドロップしておきます。<br />
コンポーネントインスペクタのurlは「index.swf」としておきます。</p>
<p>これで完了です。逆にコンポーネントからクラスにしたい場合は逆の手順でOKです。</p>
<h3>第三章：コンポーネントで作ったキャストに何か処理を加える</h3>
<p>preloader.flaのほうはコンポーネントとクラスを行ったり来たりできると便利だという方が多いのですが、index.flaのほうはこんなややこしいことしておいて何が便利なのかがイマイチわからない、という方も多く居ます。</p>
<p>ただコンポーネントで作っていても何かしらActionScriptの処理が必要になってくるときがあるので、その方法を紹介しておきます。</p>
<h4>基本はInOutMovieコンポーネントを活用する</h4>
<p>キャストには、簡単に扱えてしっかりした画面効果を得られるコンポーネントがたくさんありますが、Flashのタイムラインで実際にアニメーションを味付け出来るInOutMovieコンポーネントを基本にしていくといいでしょう。</p>
<p>InOutMovieも、in点からstop点、stop点からout点の挙動など、今までのgotoAndPlayとはちょっと違った動きをするので最初のうちは戸惑いますが、すぐに慣れてきます。慣れてさえくれば、そのあとはstopひとつ書かなくてもいいInOutMovieでのタイムライン作業が非常に効率がいいものになります。</p>
<h4>やり方１：タイムラインにActionScriptを直接書く</h4>
<p>これはもう、従来のようにタイムラインにActionScriptを書くやり方です。本当に文字通り従来通りのやり方になります。</p>
<p>例）</p>
<div id="attachment_766" class="wp-caption alignnone" style="width: 310px"><a title="ピクチャ 20" href="http://utweb.jp/blog/wp-content/uploads/2010/05/be5900acb54438b77714b0db0725dab5.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/be5900acb54438b77714b0db0725dab5-300x250.png" alt="いままでどおり普通にタイムラインにActionScript書いてもいいじゃない。変態だもの。" title="ピクチャ 20" width="300" height="250" class="size-medium wp-image-766" /></a><p class="wp-caption-text">いままでどおり普通にタイムラインにActionScript書いてもいいじゃない。変態だもの。</p></div>
<p>よく誤解されがちですが、コンポーネントを使ったからと言ってActionScriptを一切書いてないけないなんて制約はないですし（同じようにクラススタイルだからタイムラインを使ってはいけないという事も無い）、そこはもう、今まで通りやればいいんですよ。変態だもの。みつヲ</p>
<h4>やり方２：せっかくなのでクラスを使ってみる</h4>
<p>AS3のクラスがどうしても苦手な方は、無理してクラスを覚えなくても今まで書いたやり方でもなんとかなるかと思いますが、無理してまでクラスを覚えたらメリットが多いのも事実です。</p>
<p>というかここが醍醐味なので、紹介しておきます。いちおう「カスタムクラスくらいは書ける」方を対象に書きますが、クラスをばりばりかける方も是非ともチャレンジしてほしいテクニックです。</p>
<p>Progressionシーンエディタのメニューから「ツール」→「シンボルを書き出す」で書き出されたキャストには、全て自動的にキャスト名がリンケージとして設定されています。</p>
<div id="attachment_768" class="wp-caption alignnone" style="width: 310px"><a title="ピクチャ 21_on" href="http://utweb.jp/blog/wp-content/uploads/2010/05/624f55540023c97de2c8691ab68c33d7.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/624f55540023c97de2c8691ab68c33d7-300x99.png" alt="「ツール」→「シンボルに書き出す」" title="ピクチャ 21_on" width="300" height="99" class="size-medium wp-image-768" /></a><p class="wp-caption-text">「ツール」→「シンボルに書き出す」</p></div>
<div id="attachment_769" class="wp-caption alignnone" style="width: 289px"><a title="ピクチャ 22_on" href="http://utweb.jp/blog/wp-content/uploads/2010/05/478dfba6c551c1d0c250b88267ac1b84.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/478dfba6c551c1d0c250b88267ac1b84-279x300.png" alt="IndexPageというキャストは自動的にIndexPageというクラスにしてもらってる" title="ピクチャ 22_on" width="279" height="300" class="size-medium wp-image-769" /></a><p class="wp-caption-text">IndexPageというキャストは自動的にIndexPageというクラスにしてもらってる</p></div>
<p>Progression以前に、まずFlashの仕様の話なのですが、AS3からのリンケージというのはムービークリップをクラスとして扱うので、Progressionでもキャストというのはクラスで管理していた訳なんです。</p>
<p>つまり、コンポーネントスタイルを使っていて、キャストを使ったことがあるなら、知らず知らずのうちに自動的にクラスを扱っていたということになります。</p>
<p>なので考え方としては今まで自動で使われていたクラスに手を加えてみる、という考え方になります。</p>
<p>試しにflaファイルと同じディレクトリに「IndexPage.as」というASファイルを作って、次のようにクラスを書いてみましょう。</p>
<pre class="actionscript">package<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #0066CC;">MovieClip</span>;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> IndexPage <span style="color: #0066CC;">extends</span> <span style="color: #0066CC;">MovieClip</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">function</span> IndexPage<span style="color: #66cc66;">&#40;</span><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;やっほー&quot;</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>
<p>リンケージの設定でクラス名をIndexPageとしておくと、IndexPageクラスを作ると自動的に連動するようになります。<br />
正確には「連動」というのは間違いなんですが、この記事では詳細の説明を省かせてください。flaファイルを置いたディレクトリにクラスファイルだらけになるのがイヤな方は「クラスパス」とか「パッケージ」というキーワードでAS3について調べてみるといいと思います。</p>
<p>とりあえずここではリンケージの設定とカスタムクラスの連動を実験してみました。この実験をさらにすすめて、IndexPage.asを次のように書き直してみましょう。</p>
<pre class="actionscript">package<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">casts</span>.<span style="color: #006600;">animation</span>.<span style="color: #006600;">InOutMovie</span>;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> IndexPage <span style="color: #0066CC;">extends</span> InOutMovie<span style="color: #66cc66;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">function</span> IndexPage<span style="color: #66cc66;">&#40;</span><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;やっほー&quot;</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>
<p>さっきと比べてどこが変わったかは探してみてください。こんな感じでInOutMovieクラスを継承する形でキャストをカスタムクラス化すると、コンポーネントを使ったときと全く同じ効果が得られます。</p>
<p>まだAS3のクラスに慣れてなくて何を言っているのかわからない方は、今のところはとにかく「コンポーネントで作っていたとしても、あとからクラスを覚えてクラスとして使いたくなったときや、クラスを使えるプログラマーが見つかってその人に引き継ぐときでも、簡単に移行出来るんだ」とだけ覚えておいても結構です。<br />
クラスをばりばりに書ける方も、とりあえずコンポーネントとクラスはかなりシームレスに相互で行き来できるというのがわかっていただけたかと思います。</p>
<p>RollOverButtonなんかも、特にマウスオーバーなんかの状態はコンポーネントで作っておいて、クリックしたときの挙動だけスクリプトで書く、なんていうのも簡単に出来てしまうので非常におすすめです。</p>
<h3>まとめ</h3>
<p>説明が下手なので、長々と冗長な記事で本当すいません。Progressionが非常に柔軟で誰にでもすぐに実践で扱えるくらい簡単に自分の仕事を拡張してくれる名アシスタントであることが伝われば幸いです。<br />
今回この記事ではコンポーネントスタイルから、キャストを部分的にでも（もちろんキャスト全部でも良いですが）クラス化する方法を紹介しました。<br />
もし、シーン管理もクラスとコンポーネントでシームレスに管理したいと興味を持たれたら、以前の記事「<a href="http://utweb.jp/blog/archives/732" target="_self">Progression4：SceneObjectでシーンの構造管理はしない</a>」を併せてお読みください。</p>
<p>この記事がみなさんのFlashサイト制作ライフにお役に立てば幸いです！</p>
]]></content:encoded>
			<wfw:commentRss>http://utweb.jp/blog/archives/740/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://utweb.jp/blog/archives/740" />
	</item>
		<item>
		<title>Progression4：SceneObjectでシーンの構造管理はしない</title>
		<link>http://utweb.jp/blog/archives/732</link>
		<comments>http://utweb.jp/blog/archives/732#comments</comments>
		<pubDate>Fri, 14 May 2010 17:28:25 +0000</pubDate>
		<dc:creator>正宗</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Progression]]></category>
		<category><![CDATA[勉強会]]></category>

		<guid isPermaLink="false">http://utweb.jp/blog/?p=732</guid>
		<description><![CDATA[Tweet
みなさんはもう手に入れましたか？ProgressionによるFlashコンテンツ開発ガイドブック
なんでも発売から二週間足らずで重版決定だそうで。おめでとうございます！
僕はと言うと、先週行われたProgre [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Futweb.jp%2Fblog%2Farchives%2F732&amp;text=Progression4%EF%BC%9ASceneObject%E3%81%A7%E3%82%B7%E3%83%BC%E3%83%B3%E3%81%AE%E6%A7%8B%E9%80%A0%E7%AE%A1%E7%90%86%E3%81%AF%E3%81%97%E3%81%AA%E3%81%84&amp;lang=en&amp;count=horizontal" style="" class="twitter-share-button">Tweet</a></div>
<p>みなさんはもう手に入れましたか？<a href="http://www.amazon.co.jp/gp/product/4839931798?ie=UTF8&amp;tag=yamayu-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4839931798">ProgressionによるFlashコンテンツ開発ガイドブック</a><br />
なんでも発売から二週間足らずで重版決定だそうで。おめでとうございます！</p>
<p>僕はと言うと、先週行われた<a href="http://atnd.org/events/4215" target="_blank">Progression本を朗読する会</a>に参加してきました。せっかく買った本なんだから読まなきゃね！<br />
で、この朗読会、スーパー肩パッドさんとシナチクさんがTwitterで音頭をとって開催された企画でして、非常に面白くてためになりました。</p>
<p>まず14時から開始して19時半まで5時間半、ぶっとおしでProgression談義。その後居酒屋に移動して3時間またぶっとおしでFlash談義。<br />
僕自身も大阪てら子でProgressionを勉強したのが2年前。出会って以来この2年間で覚えてるだけで15案件、実際には20案件以上は実践投入してきたほどハマりまくってるProgressionについて、ここまでディープに語り合える場と仲間がいなかったので（個人事業なので家内以外仕事のパートナーが居ないので孤独）ここまで時間を忘れて、ほぼ初対面の方々たちと語らいだのは生まれて初めての経験でした。</p>
<p>本当にいい刺激になりました。</p>
<p>で、いちおう自分がとってたノートもあるんだけど、皆さんの喋った内容がまとめきれていないので、せめて自分のネタだけでもまとめておこうと思ったわけです。</p>
<p>21日の僕の勉強会でもこれやります。<br />
不思議なことに全く同じ記事を「クラススタイル向け」と「コンポーネント向け」で2回書きます。今回はその第一回目です。<br />
第一回目は、「クラススタイル向け」に書いてみようと思います。</p>
<h3><span id="more-732"></span>目的：SceneObjectでシーンの構造管理をしない</h3>
<p>この記事の目的はこれにつきます。ちょっと何を言っているのかわからないと思いますが、大まじめです。<br />
本やネット上のサンプルなどにも、SceneObjectを使ってaddSceneとかで子シーンを管理したりしていますし、クラススタイルに慣れてくると、シーンのloadやinit、gotoやunloadを駆使していろいろと複雑なシーン管理を行えるようになってくるのですが、あえてシーンの管理をほとんどしない方法を探るというやり方です。この方法が何故いいのかは勉強会でお話ししたいと思います。</p>
<h3>シーンの構造はXMLで</h3>
<p>具体的にどうシーン管理をSceneObjectではさせないかというと、シーンの構造はほぼ全てXMLで管理するようにします。<br />
「な～んだ。SceneObjectのaddSceneFromXMLだろ。知ってるよ」という方も沢山いらっしゃると思いますが、ここではさらに踏み込んでEasyCastingだけでシーンを管理することを目指します。</p>
<p>普段クラススタイルで作られてる方は「えーEasyCastingってコンポーネントスタイルで扱う簡単シーン管理でしょ。うちの案件はもうちょっと複雑なの。いろいろと出来ないと困る」と思うはずです。大丈夫です。</p>
<h3>プロジェクトの種類は「クラス」でOK</h3>
<p>クラススタイル派にとってEasyCastingを使う心配事は「こんな簡単機能使ってて、俺がしたいあれとかこれとかちゃんと出来るんだろうか」というところにあると思います。少なくとも僕はそうでした。</p>
<p>基本的にはプロジェクト設定のとき、種類は「クラス」でOKです。FlashDevelopやFlashBuilderの対応など、いつもどおりのプロジェクトで書き出せば先ずは準備はOKです。</p>
<h3>サンプルを見てみる</h3>
<p>先ずは<a href="http://utweb.jp/samples/blog/Prog4MimeticEasyCasting.zip">こちらのサンプル（Prog4MimeticEasyCasting.zip）</a>をダウンロードして解凍してみてください。</p>
<p>解凍して出来るファイル構成は</p>
<ul>
<li>classes
<ul>
<li>casts
<ul>
<li>AbstractCast.as</li>
</ul>
</li>
<li>common
<ul>
<li>AbstractSceneManager.as</li>
</ul>
</li>
<li>display
<ul>
<li>AbstractSceneContainer.as</li>
</ul>
</li>
<li>scenes
<ul>
<li>AbstractScene.as</li>
</ul>
</li>
</ul>
<ul>
<li>Index.as</li>
</ul>
</li>
</ul>
<p>こうなっていると思います。<br />
この中で大事なのはcasts.AbstractCasts.asと、scenes.AbstractScene.asと、Index.asの3つだけです。</p>
<p>ちなみに、プロジェクトがこういった構造になっている前提で話を進めます。<br />
<a title="project" href="http://utweb.jp/blog/wp-content/uploads/2010/05/project.png"><img src="http://utweb.jp/blog/wp-content/uploads/2010/05/project-300x219.png" alt="project" title="project" width="300" height="219" class="size-medium wp-image-735 alignnone" /></a></p>
<h3>Index.as</h3>
<p>Index.asを見てみましょう。これ以降、ソースがよく出てきますがソースの興味のある方は読んでもいいし、読まなくてもいいです。なぜなら、僕は自分のソースに全く自信が持てないので、嘘を書いてる可能性もあるし何より大事なのは考え方の説明のほうだと思っているからです。</p>
<pre class="actionscript">package classes <span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">net</span>.<span style="color: #006600;">URLRequest</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">casts</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">commands</span>.<span style="color: #006600;">display</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">commands</span>.<span style="color: #006600;">lists</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">commands</span>.<span style="color: #006600;">managers</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">commands</span>.<span style="color: #006600;">media</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">commands</span>.<span style="color: #006600;">net</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">commands</span>.<span style="color: #006600;">tweens</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">commands</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">config</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #0066CC;">data</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">debug</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">events</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">loader</span>.<span style="color: #006600;">PRMLLoader</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">scenes</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> classes.<span style="color: #006600;">common</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> classes.<span style="color: #006600;">scenes</span>.<span style="color: #006600;">*</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	 * ...
	 * @author ...
	 */</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> <span style="color: #0066CC;">Index</span> <span style="color: #0066CC;">extends</span> CastDocument <span style="color: #66cc66;">&#123;</span>
		AbstractScene;
		<span style="color: #808080; font-style: italic;">/**
		 * 新しい Index インスタンスを作成します。
		 */</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">Index</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">// 自動的に作成される Progression インスタンスの初期設定を行います。</span>
			<span style="color: #808080; font-style: italic;">// 生成されたインスタンスにアクセスする場合には manager プロパティを参照してください。</span>
			<span style="color: #808080; font-style: italic;">//super( &quot;index&quot;, IndexScene, new WebConfig() );</span>
			<span style="color: #808080; font-style: italic;">//PRMLLoaderにまかせるのでここではnullを入れておく</span>
			<span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">null</span>, <span style="color: #000000; font-weight: bold;">null</span>, <span style="color: #000000; font-weight: bold;">new</span> WebConfig<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * SWF ファイルの読み込みが完了し、stage 及び loaderInfo にアクセス可能になった場合に送出されます。
		 */</span>
		override protected <span style="color: #000000; font-weight: bold;">function</span> atReady<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> prmlLoader:PRMLLoader = <span style="color: #000000; font-weight: bold;">new</span> PRMLLoader<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">stage</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			prmlLoader.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">COMPLETE</span>, <span style="color: #000000; font-weight: bold;">function</span><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>
				prmlLoader.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">COMPLETE</span>, <span style="color: #0066CC;">arguments</span>.<span style="color: #0066CC;">callee</span><span style="color: #66cc66;">&#41;</span>;
				<span style="color: #808080; font-style: italic;">// 開発者用に Progression の動作状況を出力します。</span>
				Debugger.<span style="color: #006600;">addTarget</span><span style="color: #66cc66;">&#40;</span> manager <span style="color: #66cc66;">&#41;</span>;
				<span style="color: #808080; font-style: italic;">// 外部同期機能を有効化します。</span>
				manager.<span style="color: #006600;">sync</span> = <span style="color: #000000; font-weight: bold;">true</span>;
&nbsp;
				<span style="color: #808080; font-style: italic;">//違うところにナビゲーションしたらトップページに</span>
				manager.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>ProcessEvent.<span style="color: #006600;">PROCESS_ERROR</span>, <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:ProcessEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
					manager.<span style="color: #0066CC;">goto</span><span style="color: #66cc66;">&#40;</span>manager.<span style="color: #006600;">syncedSceneId</span><span style="color: #66cc66;">&#41;</span>;
				<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
				<span style="color: #808080; font-style: italic;">// 最初のシーンに移動します。</span>
				manager.<span style="color: #0066CC;">goto</span><span style="color: #66cc66;">&#40;</span> manager.<span style="color: #006600;">syncedSceneId</span> <span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			prmlLoader.<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;casting.xml&quot;</span><span style="color: #66cc66;">&#41;</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>
<p>基本的に大事なのは、コンストラクタ内では初期化を行わずに、atReadyの中でPRMLLoaderを使ってcasting.xmlを読み込んでいることだけです。</p>
<h3>EasyCastingSceneもどきを作る</h3>
<p>次にscenes.AvstractScene.asのほうです。こちらは潔いくらいEasyCastingSceneのパクリです。<br />
ヘッダの記載に迷ったのが、ほとんど手を付けてないのでEasyCastingの表記を守りましたが、逆に「へぼくなってる。手を加えたのなら自分の表記にするべき」なのであれば、ヘッダーの部分は僕自身の名前に変えます。興味ある方はオリジナルのEasyCastingと読み比べて見てください。</p>
<p>※2010.05.21 公式の4.0.2bパッチに対応しました</p>
<pre class="actionscript"><span style="color: #808080; font-style: italic;">/**
 * Progression 4
 *
 * @author Copyright (C) 2007-2010 taka:nium.jp, All Rights Reserved.
 * @version 4.0.2b
 * @see http://progression.jp/
 *
 * Progression Libraries is dual licensed under the &quot;Progression Library License&quot; and &quot;GPL&quot;.
 * http://progression.jp/license
 */</span>
package classes.<span style="color: #006600;">scenes</span> <span style="color: #66cc66;">&#123;</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;">utils</span>.<span style="color: #006600;">Dictionary</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">utils</span>.<span style="color: #006600;">getDefinitionByName</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">nium</span>.<span style="color: #006600;">core</span>.<span style="color: #006600;">debug</span>.<span style="color: #006600;">Logger</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">nium</span>.<span style="color: #006600;">core</span>.<span style="color: #006600;">L10N</span>.<span style="color: #006600;">L10NNiumMsg</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">nium</span>.<span style="color: #006600;">utils</span>.<span style="color: #006600;">ObjectUtil</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">nium</span>.<span style="color: #006600;">utils</span>.<span style="color: #006600;">StringUtil</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">commands</span>.<span style="color: #006600;">display</span>.<span style="color: #006600;">AddChild</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">commands</span>.<span style="color: #006600;">display</span>.<span style="color: #006600;">AddChildAt</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">commands</span>.<span style="color: #006600;">display</span>.<span style="color: #006600;">RemoveChild</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">commands</span>.<span style="color: #006600;">lists</span>.<span style="color: #006600;">ParallelList</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">core</span>.<span style="color: #006600;">L10N</span>.<span style="color: #006600;">L10NProgressionMsg</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">core</span>.<span style="color: #006600;">PackageInfo</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">events</span>.<span style="color: #006600;">DataProvideEvent</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">events</span>.<span style="color: #006600;">SceneEvent</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">executors</span>.<span style="color: #006600;">CommandExecutor</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">Progression</span>;
	<span style="color: #0066CC;">import</span> jp.<span style="color: #006600;">progression</span>.<span style="color: #006600;">scenes</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> classes.<span style="color: #006600;">display</span>.<span style="color: #006600;">AbstractSceneContainer</span>;
	<span style="color: #0066CC;">import</span> classes.<span style="color: #006600;">common</span>.<span style="color: #006600;">AbstractSceneManager</span>;
	<span style="color: #0066CC;">import</span> classes.<span style="color: #006600;">casts</span>.<span style="color: #006600;">*</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	 * &lt;span lang=&quot;ja&quot;&gt;EasyCastingScene クラスは、拡張された PRML 形式の XML データを使用して ActionScript を使用しないコンポーネントベースの開発スタイルを提供するクラスです。&lt;/span&gt;
	 * &lt;span lang=&quot;en&quot;&gt;&lt;/span&gt;
	 *
	 * @example
&lt;listing version=&quot;3.0&quot;&gt;
	 * // EasyCastingScene インスタンスを作成する
	 * var scene:EasyCastingScene = new EasyCastingScene();
	 * &lt;/listing&gt;
	 */</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> AbstractScene <span style="color: #0066CC;">extends</span> SceneObject <span style="color: #66cc66;">&#123;</span>
		AbstractCast;
		<span style="color: #808080; font-style: italic;">/**
		 * すべてのインスタンスを保持した Dictionary インスタンスを取得します。
		 */</span>
		<span style="color: #0066CC;">private</span> <span style="color: #0066CC;">static</span> <span style="color: #000000; font-weight: bold;">var</span> _instances:Dictionary = AbstractSceneManager.<span style="color: #006600;">getInstance</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">contentInstance</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * 現在表示しているインスタンスを保持した Dictionary インスタンスを取得します。
		 */</span>
		<span style="color: #0066CC;">private</span> <span style="color: #0066CC;">static</span> <span style="color: #000000; font-weight: bold;">var</span> _displayingList:Dictionary = AbstractSceneManager.<span style="color: #006600;">getInstance</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">displayingList</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * コンテナインスタンスを保持した Dictionary インスタンスを取得します。
		 */</span>
		<span style="color: #0066CC;">private</span> <span style="color: #0066CC;">static</span> <span style="color: #000000; font-weight: bold;">var</span> _containers:Dictionary = AbstractSceneManager.<span style="color: #006600;">getInstance</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">containers</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * &lt;span lang=&quot;ja&quot;&gt;自身に移動した際に表示させる表示オブジェクトを保持した配列を取得します。&lt;/span&gt;
		 * &lt;span lang=&quot;en&quot;&gt;&lt;/span&gt;
		 */</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> casts<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Array</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #b1b100;">return</span> _casts.<span style="color: #0066CC;">slice</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #66cc66;">&#125;</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _casts:<span style="color: #0066CC;">Array</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * キャストオブジェクトのクラス名をキーとして、パラメータを保持した Dictionary インスタンスを取得します。
		 */</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _castParameters:Dictionary;
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * &lt;span lang=&quot;ja&quot;&gt;新しい EasyCastingScene インスタンスを作成します。&lt;/span&gt;
		 * &lt;span lang=&quot;en&quot;&gt;Creates a new EasyCastingScene object.&lt;/span&gt;
		 *
		 * @param name
		 * &lt;span lang=&quot;ja&quot;&gt;シーンの名前です。&lt;/span&gt;
		 * &lt;span lang=&quot;en&quot;&gt;&lt;/span&gt;
		 * @param initObject
		 * &lt;span lang=&quot;ja&quot;&gt;設定したいプロパティを含んだオブジェクトです。&lt;/span&gt;
		 * &lt;span lang=&quot;en&quot;&gt;&lt;/span&gt;
		 */</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> AbstractScene<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">name</span>:<span style="color: #0066CC;">String</span> = <span style="color: #000000; font-weight: bold;">null</span>, initObject:<span style="color: #0066CC;">Object</span> = <span style="color: #000000; font-weight: bold;">null</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">// 初期化する</span>
			_casts = <span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>;
			_castParameters = <span style="color: #000000; font-weight: bold;">new</span> Dictionary<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// 親クラスを初期化する</span>
			<span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">name</span>, initObject <span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// Progression が CommandExecutor を実装していなければ例外をスローする</span>
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> Progression.<span style="color: #006600;">config</span>.<span style="color: #006600;">executor</span> != CommandExecutor <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Error</span><span style="color: #66cc66;">&#40;</span> Logger.<span style="color: #006600;">getLog</span><span style="color: #66cc66;">&#40;</span> L10NNiumMsg.<span style="color: #006600;">getInstance</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">ERROR_017</span> <span style="color: #66cc66;">&#41;</span>.<span style="color: #0066CC;">toString</span><span style="color: #66cc66;">&#40;</span> className, <span style="color: #ff0000;">&quot;CommandExecutor&quot;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>; <span style="color: #66cc66;">&#125;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">// イベントリスナーを登録する</span>
			<span style="color: #0066CC;">super</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> SceneEvent.<span style="color: #006600;">SCENE_UNLOAD</span>, _sceneUnload, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span> <span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">super</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> SceneEvent.<span style="color: #006600;">SCENE_INIT</span>, _sceneInit, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span> <span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">super</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> SceneEvent.<span style="color: #006600;">SCENE_ADDED_TO_ROOT</span>, _sceneAddedToRoot, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span> <span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">super</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> SceneEvent.<span style="color: #006600;">SCENE_REMOVED_FROM_ROOT</span>, _sceneRemovedFromRoot, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * &lt;span lang=&quot;ja&quot;&gt;XML データが EasyCasting 拡張 PRML フォーマットに準拠しているかどうかを返します。&lt;/span&gt;
		 * &lt;span lang=&quot;en&quot;&gt;&lt;/span&gt;
		 *
		 * @param prml
		 * &lt;span lang=&quot;ja&quot;&gt;フォーマットを検査したい XML データです。&lt;/span&gt;
		 * &lt;span lang=&quot;en&quot;&gt;&lt;/span&gt;
		 * @return
		 * &lt;span lang=&quot;ja&quot;&gt;フォーマットが合致すれば true を、合致しなければ false となります。&lt;/span&gt;
		 * &lt;span lang=&quot;en&quot;&gt;&lt;/span&gt;
		 *
		 * @example
&lt;listing version=&quot;3.0&quot;&gt;
		 * &lt;/listing&gt;
		 */</span>
		<span style="color: #0066CC;">public</span> <span style="color: #0066CC;">static</span> <span style="color: #000000; font-weight: bold;">function</span> validate<span style="color: #66cc66;">&#40;</span> prml:<span style="color: #0066CC;">XML</span> <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Boolean</span> <span style="color: #66cc66;">&#123;</span>
			prml = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">XML</span><span style="color: #66cc66;">&#40;</span> prml.<span style="color: #006600;">toXMLString</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// コンテンツタイプを確認する</span>
			<span style="color: #b1b100;">switch</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#40;</span> prml.<span style="color: #006600;">attribute</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;type&quot;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #b1b100;">case</span> <span style="color: #ff0000;">&quot;text/easycasting&quot;</span>			:
				<span style="color: #b1b100;">case</span> <span style="color: #ff0000;">&quot;text/prml.easycasting&quot;</span>	: <span style="color: #66cc66;">&#123;</span> <span style="color: #b1b100;">break</span>; <span style="color: #66cc66;">&#125;</span>
				<span style="color: #b1b100;">case</span> <span style="color: #ff0000;">&quot;text/prml.plain&quot;</span>			: <span style="color: #66cc66;">&#123;</span> <span style="color: #b1b100;">break</span>; <span style="color: #66cc66;">&#125;</span>
				<span style="color: #000000; font-weight: bold;">default</span>							: <span style="color: #66cc66;">&#123;</span> <span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">false</span>; <span style="color: #66cc66;">&#125;</span>
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">// 必須プロパティを精査する</span>
			<span style="color: #b1b100;">for</span> each <span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">var</span> cast:<span style="color: #0066CC;">XML</span> <span style="color: #b1b100;">in</span> prml..<span style="color: #006600;">cast</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> !<span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#40;</span> cast.<span style="color: #006600;">attribute</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;cls&quot;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">false</span>; <span style="color: #66cc66;">&#125;</span>
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">// PRML として評価する</span>
			prml.@<span style="color: #0066CC;">type</span> = <span style="color: #ff0000;">&quot;text/prml.plain&quot;</span>;
&nbsp;
			<span style="color: #b1b100;">return</span> SceneObject.<span style="color: #006600;">validate</span><span style="color: #66cc66;">&#40;</span> prml <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * &lt;span lang=&quot;ja&quot;&gt;この SceneObject インスタンスの子を PRML 形式の XML データから追加します。&lt;/span&gt;
		 * &lt;span lang=&quot;en&quot;&gt;&lt;/span&gt;
		 *
		 * @param prml
		 * &lt;span lang=&quot;en&quot;&gt;PRML 形式の XML データです。&lt;/span&gt;
		 * &lt;span lang=&quot;en&quot;&gt;&lt;/span&gt;
		 */</span>
		override <span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> addSceneFromXML<span style="color: #66cc66;">&#40;</span> prml:<span style="color: #0066CC;">XML</span> <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">// &lt;scene&gt; の cls を上書きする</span>
			<span style="color: #808080; font-style: italic;">/*
			for each ( var scene:XML in prml..scene ) {
				scene.@cls = &quot;jp.progression.scenes.EasyCastingScene&quot;;
			}
			*/</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">// PRML のフォーマットが正しくなければ例外をスローする</span>
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> !validate<span style="color: #66cc66;">&#40;</span> prml <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Error</span><span style="color: #66cc66;">&#40;</span> Logger.<span style="color: #006600;">getLog</span><span style="color: #66cc66;">&#40;</span> L10NNiumMsg.<span style="color: #006600;">getInstance</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">ERROR_005</span> <span style="color: #66cc66;">&#41;</span>.<span style="color: #0066CC;">toString</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;PRML&quot;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>; <span style="color: #66cc66;">&#125;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">// 親のメソッドを実行する</span>
			<span style="color: #0066CC;">super</span>.<span style="color: #006600;">addSceneFromXML</span><span style="color: #66cc66;">&#40;</span> prml <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * &lt;span lang=&quot;ja&quot;&gt;保持しているデータを解放します。&lt;/span&gt;
		 * &lt;span lang=&quot;en&quot;&gt;&lt;/span&gt;
		 */</span>
		override <span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> dispose<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			_casts = <span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>;
			_castParameters = <span style="color: #000000; font-weight: bold;">new</span> Dictionary<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// 親のメソッドを実行する</span>
			<span style="color: #0066CC;">super</span>.<span style="color: #006600;">dispose</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * シーン移動時に目的地がシーンオブジェクト自身もしくは親階層だった場合に、階層が変更される直前に送出されます。
		 */</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> _sceneUnload<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">e</span>:SceneEvent <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">// 対象がルートでなければ終了する</span>
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">this</span> != <span style="color: #0066CC;">super</span>.<span style="color: #006600;">root</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #b1b100;">return</span>; <span style="color: #66cc66;">&#125;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">// コンテナを取得する</span>
			_containers<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">super</span>.<span style="color: #006600;">container</span><span style="color: #66cc66;">&#93;</span> ||= <span style="color: #000000; font-weight: bold;">new</span> AbstractSceneContainer<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">this</span> <span style="color: #66cc66;">&#41;</span>;
			<span style="color: #000000; font-weight: bold;">var</span> container:AbstractSceneContainer = _containers<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">super</span>.<span style="color: #006600;">container</span><span style="color: #66cc66;">&#93;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// コマンドリストを作成する</span>
			<span style="color: #000000; font-weight: bold;">var</span> removeChildList:ParallelList = <span style="color: #000000; font-weight: bold;">new</span> ParallelList<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// すでに表示されている対象を検索する</span>
			<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">var</span> cls:<span style="color: #0066CC;">String</span> <span style="color: #b1b100;">in</span> _displayingList <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #808080; font-style: italic;">// コマンドを追加する</span>
				removeChildList.<span style="color: #006600;">addCommand</span><span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> RemoveChild<span style="color: #66cc66;">&#40;</span> container, _displayingList<span style="color: #66cc66;">&#91;</span>cls<span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
&nbsp;
				<span style="color: #808080; font-style: italic;">// 登録から削除する</span>
				<span style="color: #0066CC;">delete</span> _displayingList<span style="color: #66cc66;">&#91;</span>cls<span style="color: #66cc66;">&#93;</span>;
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">// コマンドを追加する</span>
			<span style="color: #0066CC;">super</span>.<span style="color: #006600;">addCommand</span><span style="color: #66cc66;">&#40;</span> removeChildList <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * シーンオブジェクト自身が目的地だった場合に、到達した瞬間に送出されます。
		 */</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> _sceneInit<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">e</span>:SceneEvent <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">// コンテナを取得する</span>
			_containers<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">super</span>.<span style="color: #006600;">container</span><span style="color: #66cc66;">&#93;</span> ||= <span style="color: #000000; font-weight: bold;">new</span> AbstractSceneContainer<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">this</span> <span style="color: #66cc66;">&#41;</span>;
			<span style="color: #000000; font-weight: bold;">var</span> container:AbstractSceneContainer = _containers<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">super</span>.<span style="color: #006600;">container</span><span style="color: #66cc66;">&#93;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// コンテナが登録されていなければ登録する</span>
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> !<span style="color: #0066CC;">super</span>.<span style="color: #006600;">container</span>.<span style="color: #006600;">contains</span><span style="color: #66cc66;">&#40;</span> container <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #0066CC;">super</span>.<span style="color: #006600;">container</span>.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span> container <span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">// コマンドリストを作成する</span>
			<span style="color: #000000; font-weight: bold;">var</span> addChildList:ParallelList = <span style="color: #000000; font-weight: bold;">new</span> ParallelList<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #000000; font-weight: bold;">var</span> removeChildList:ParallelList = <span style="color: #000000; font-weight: bold;">new</span> ParallelList<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// すでに表示されている対象を検索する</span>
			<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">var</span> cls:<span style="color: #0066CC;">String</span> <span style="color: #b1b100;">in</span> _displayingList <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #808080; font-style: italic;">// 登録されていれば次へ</span>
				<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> _castParameters<span style="color: #66cc66;">&#91;</span>cls<span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #b1b100;">continue</span>; <span style="color: #66cc66;">&#125;</span>
&nbsp;
				<span style="color: #808080; font-style: italic;">// コマンドを追加する</span>
				removeChildList.<span style="color: #006600;">addCommand</span><span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> RemoveChild<span style="color: #66cc66;">&#40;</span> container, _displayingList<span style="color: #66cc66;">&#91;</span>cls<span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
&nbsp;
				<span style="color: #808080; font-style: italic;">// 登録から削除する</span>
				<span style="color: #0066CC;">delete</span> _displayingList<span style="color: #66cc66;">&#91;</span>cls<span style="color: #66cc66;">&#93;</span>;
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">// 現在のシーンで必要な対象を追加する</span>
			<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">var</span> cast:<span style="color: #0066CC;">String</span> <span style="color: #b1b100;">in</span> _castParameters <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #808080; font-style: italic;">// インスタンスを取得する</span>
				<span style="color: #000000; font-weight: bold;">var</span> instance:Sprite = _displayingList<span style="color: #66cc66;">&#91;</span>cast<span style="color: #66cc66;">&#93;</span>;
&nbsp;
				<span style="color: #808080; font-style: italic;">// すでに表示されていれば次へ</span>
				<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> instance <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #b1b100;">continue</span>; <span style="color: #66cc66;">&#125;</span>
&nbsp;
				<span style="color: #808080; font-style: italic;">// インスタンスを取得する</span>
				instance = _instances<span style="color: #66cc66;">&#91;</span>cast<span style="color: #66cc66;">&#93;</span>;
&nbsp;
				<span style="color: #808080; font-style: italic;">// プロパティを設定する</span>
				ObjectUtil.<span style="color: #006600;">setProperties</span><span style="color: #66cc66;">&#40;</span> instance, _castParameters<span style="color: #66cc66;">&#91;</span>cast<span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#41;</span>;
&nbsp;
				<span style="color: #808080; font-style: italic;">// インデックスを取得する</span>
				<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">index</span>:<span style="color: #0066CC;">String</span> = _castParameters<span style="color: #66cc66;">&#91;</span>cast<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">index</span>;
&nbsp;
				<span style="color: #808080; font-style: italic;">// コマンドを追加する</span>
				<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">index</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
					addChildList.<span style="color: #006600;">addCommand</span><span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> AddChildAt<span style="color: #66cc66;">&#40;</span> container, instance, <span style="color: #0066CC;">parseInt</span><span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">index</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
				<span style="color: #66cc66;">&#125;</span>
				<span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
					addChildList.<span style="color: #006600;">addCommand</span><span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> AddChild<span style="color: #66cc66;">&#40;</span> container, instance <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
				<span style="color: #66cc66;">&#125;</span>
&nbsp;
				<span style="color: #808080; font-style: italic;">// 表示中リストに登録する</span>
				_displayingList<span style="color: #66cc66;">&#91;</span>cast<span style="color: #66cc66;">&#93;</span> = instance;
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">// コマンドを追加する</span>
			<span style="color: #0066CC;">super</span>.<span style="color: #006600;">addCommand</span><span style="color: #66cc66;">&#40;</span> removeChildList, addChildList <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * シーンオブジェクトが直接、またはシーンオブジェクトを含むサブツリーの追加により、ルートシーン上のシーンリストに追加されたときに送出されます。
		 */</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> _sceneAddedToRoot<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">e</span>:SceneEvent <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">super</span>.<span style="color: #006600;">dataHolder</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #0066CC;">super</span>.<span style="color: #006600;">dataHolder</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> DataProvideEvent.<span style="color: #006600;">DATA_UPDATE</span>, _update, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</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;">/**
		 * シーンオブジェクトが直接、またはシーンオブジェクトを含むサブツリーの削除により、ルートシーン上のシーンリストから削除されようとしているときに送出されます。
		 */</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> _sceneRemovedFromRoot<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">e</span>:SceneEvent <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">super</span>.<span style="color: #006600;">dataHolder</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #0066CC;">super</span>.<span style="color: #006600;">dataHolder</span>.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span> DataProvideEvent.<span style="color: #006600;">DATA_UPDATE</span>, _update <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;">/**
		 * 管理するデータが更新された場合に送出されます。
		 */</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> _update<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">e</span>:DataProvideEvent <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">// データを取得する</span>
			<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">xml</span>:<span style="color: #0066CC;">XML</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">XML</span><span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">super</span>.<span style="color: #006600;">toXMLString</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// cast を取得する</span>
			_castParameters = <span style="color: #000000; font-weight: bold;">new</span> Dictionary<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #b1b100;">for</span> each <span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">var</span> cast:<span style="color: #0066CC;">XML</span> <span style="color: #b1b100;">in</span> <span style="color: #0066CC;">xml</span>.<span style="color: #006600;">cast</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">var</span> o:<span style="color: #0066CC;">Object</span> = <span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">&#125;</span>;
&nbsp;
				<span style="color: #808080; font-style: italic;">// アトリビュートを取得する</span>
				<span style="color: #b1b100;">for</span> each <span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">var</span> attribute:<span style="color: #0066CC;">XML</span> <span style="color: #b1b100;">in</span> cast.<span style="color: #0066CC;">attributes</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
					o<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#40;</span> attribute.<span style="color: #0066CC;">name</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span> = StringUtil.<span style="color: #006600;">toProperType</span><span style="color: #66cc66;">&#40;</span> attribute <span style="color: #66cc66;">&#41;</span>;
				<span style="color: #66cc66;">&#125;</span>
&nbsp;
				_castParameters<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#40;</span> cast.@cls <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span> = o;
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">// インスタンスを作成する</span>
			_casts = <span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>;
			<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">var</span> clsPath:<span style="color: #0066CC;">String</span> <span style="color: #b1b100;">in</span> _castParameters <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #0066CC;">try</span> <span style="color: #66cc66;">&#123;</span>
					<span style="color: #808080; font-style: italic;">// クラスの参照を取得する</span>
					<span style="color: #000000; font-weight: bold;">var</span> cls:<span style="color: #000000; font-weight: bold;">Class</span> = getDefinitionByName<span style="color: #66cc66;">&#40;</span> clsPath <span style="color: #66cc66;">&#41;</span> as <span style="color: #000000; font-weight: bold;">Class</span>;
&nbsp;
					<span style="color: #808080; font-style: italic;">// インスタンスを生成する</span>
					_instances<span style="color: #66cc66;">&#91;</span>clsPath<span style="color: #66cc66;">&#93;</span> ||= <span style="color: #000000; font-weight: bold;">new</span> cls<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
					<span style="color: #808080; font-style: italic;">// リストに追加する</span>
					_casts.<span style="color: #0066CC;">push</span><span style="color: #66cc66;">&#40;</span> clsPath <span style="color: #66cc66;">&#41;</span>;
				<span style="color: #66cc66;">&#125;</span>
				<span style="color: #0066CC;">catch</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">e</span>:<span style="color: #0066CC;">Error</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
					<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> PackageInfo.<span style="color: #006600;">hasDebugger</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
						<span style="color: #808080; font-style: italic;">// 警告を表示する</span>
						Logger.<span style="color: #0066CC;">error</span><span style="color: #66cc66;">&#40;</span> Logger.<span style="color: #006600;">getLog</span><span style="color: #66cc66;">&#40;</span> L10NProgressionMsg.<span style="color: #006600;">getInstance</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">ERROR_018</span> <span style="color: #66cc66;">&#41;</span>.<span style="color: #0066CC;">toString</span><span style="color: #66cc66;">&#40;</span> clsPath <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
					<span style="color: #66cc66;">&#125;</span>
&nbsp;
					<span style="color: #808080; font-style: italic;">// 登録を破棄する</span>
					<span style="color: #0066CC;">delete</span> _castParameters<span style="color: #66cc66;">&#91;</span>clsPath<span style="color: #66cc66;">&#93;</span>;
				<span style="color: #66cc66;">&#125;</span>
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<h3>あとはガンガンXMLを書いていく</h3>
<p>ほかのクラスはどうでもいいです。<br />
とりあえずバグが出なくなるように調整したクラスだったりしますから。</p>
<p>あとはProgressionシーンエディタでもいいですし、XMLを直接でもいいですし、PRMLをがっつり書いていきます。<br />
がっつり書き終えたら、次の二つのことをしておきます。</p>
<ol>
<li>PRMLの属性を type="text/prml.plain" にしておく</li>
<li>sceneのcls属性を全部"classes.scenes.AbstractScene"にしておく</li>
</ol>
<p>あとは動かすだけ！</p>
<p>たったこれだけでクラススタイルの自由な環境を維持したままシーンの構造をXMLにまるなげ出来る環境が整いました。<br />
PRMLのtypeは"text/prml.plain"ですので、XMLでも個別に動かしたいシーンはclasses.scenes.AbstractSceneをオーバーライドしたカスタムSceneObjectでいつもどおりの開発も行えます。<br />
もう少しコンポーネントとハイブリッドな開発を行いたければ、僕の一番のおすすめはPRMLをEasyCastingと同じようにcastタグを追加するスタイルです。</p>
<p>castタグのcls属性もクラスの指定なので、ここで独自のCastObjectを指定しておけば、クラススタイルの開発と変わることなくキャストによる開発を行えます。むしろSceneObjectをXML以外で触ることがほとんど無くなるので従来のクラススタイルより一歩進んでスマートに開発が行えるようになりました。</p>
<p>castタグ以外にも、ほかにも自由にXMLにタグを追加してdataHolderから値をとるなど、かなり柔軟で強力な開発を行えるスタイルなので、ばりばりクラスを使いこなす人ほど「コンポーネントスタイルとの連携なんて」と思わず是非とも実践して欲しい技の一つです。</p>
<p>ご意見ご質問は随時受け付けております。みんなでオレオレProgression開発スタイルを語り合おう！</p>
]]></content:encoded>
			<wfw:commentRss>http://utweb.jp/blog/archives/732/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://utweb.jp/blog/archives/732" />
	</item>
	</channel>
</rss>
