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

<channel>
	<title>minomix blog &#187; CASA Framework</title>
	<atom:link href="http://minomix.net/blog/category/casa-framework/feed/" rel="self" type="application/rss+xml" />
	<link>http://minomix.net/blog</link>
	<description>Flashの事とかWebや日常の事などいろいろ</description>
	<lastBuildDate>Sun, 27 Sep 2009 16:41:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>【CASA】ちょっとした変数を外部ファイルで扱う</title>
		<link>http://minomix.net/blog/2008/03/07/81/</link>
		<comments>http://minomix.net/blog/2008/03/07/81/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 16:59:59 +0000</pubDate>
		<dc:creator>minon@minomix</dc:creator>
				<category><![CDATA[CASA Framework]]></category>

		<guid isPermaLink="false">http://minomix.net/blog/2008/03/07/81/</guid>
		<description><![CDATA[気が付けばCASAネタを2ヶ月以上更新して無かったわけですが。
ぱぱっと更新したいがために、簡単なネタをチョイスするあたり、すでにサボり癖がついている模様。
はい、FlashにはLoadVarsという外部ファイルから変数 [...]]]></description>
			<content:encoded><![CDATA[<p>気が付けばCASAネタを2ヶ月以上更新して無かったわけですが。<br />
ぱぱっと更新したいがために、簡単なネタをチョイスするあたり、すでにサボり癖がついている模様。</p>
<p>はい、FlashにはLoadVarsという外部ファイルから変数を読み込むオブジェクトがありますが、クラスベースで書くとなんか使いにくいというか、addEventListenerとかいまさら書きたくないとか、とにかくなんかうっとうしいのです。特に、CASAを使っていると。</p>
<p>はい、そこで便利なものがあります。</p>
<p>VarsLoad</p>
<p>単語の前後を逆にしただけという非常にややこしいクラス名。<br />
必死に考えたが、良い名前が名前考えつかなかったと思われる。<br />
<span id="more-81"></span><br />
使い方、というほどのものでもなく超シンプル。<br />
XmlLoadのLoadVars版。</p>
<div class="igBar"><span id="lactionscript-3"><a href="#" onclick="javascript:showCodeTxt('actionscript-3'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-3">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">import</span> &nbsp;org.<span style="color: #006600;">casaframework</span>.<span style="color: #0066CC;">load</span>.<span style="color: #0066CC;">data</span>.<span style="color: #006600;">VarsLoad</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> _vl:VarsLoad = <span style="color: #000000; font-weight: bold;">new</span> VarsLoad<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"num.txt"</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_vl.<span style="color: #006600;">addEventObserver</span><span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">this</span>, VarsLoad.<span style="color: #006600;">EVENT_LOAD_COMPLETE</span>, <span style="color: #ff0000;">"onLoadComplete"</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_vl.<span style="color: #0066CC;">start</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">onLoadComplete</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_vl.<span style="color: #006600;">getValue</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"a"</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_vl.<span style="color: #006600;">getValue</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"b"</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
インスタンス生成時に指定してるファイルの中身は、LoadVarsで扱うときと同フォーマットで書いておく。<br />
a=123&amp;b=456<br />
こんな感じ。</p>
<p>XmlLoadのときと同じく、ロード完了時のイベント登録しといて、start実行して、ロード完了したらイベント発生して、登録した関数が呼ばれる。<br />
テキストファイルで指定した変数を引っ張り出したいときはgetValueに引っ張り出したい変数名をStringで指定するだけ。</p>
<p>あと、こいつはsendAndLoadもできる。<br />
たとえばCGIとかにで引数指定してデータ引っ張ってくる場合はstartする前にsetValueするだけ</p>
<div class="igBar"><span id="lactionscript-4"><a href="#" onclick="javascript:showCodeTxt('actionscript-4'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-4">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> _vl:VarsLoad = <span style="color: #000000; font-weight: bold;">new</span> VarsLoad<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"test.cgi"</span>, <span style="color: #ff0000;">"POST"</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_vl.<span style="color: #006600;">addEventObserver</span><span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">this</span>, VarsLoad.<span style="color: #006600;">EVENT_LOAD_COMPLETE</span>, <span style="color: #ff0000;">"onLoadComplete"</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_vl.<span style="color: #006600;">setValue</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"name"</span>, <span style="color: #ff0000;">"minomix"</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_vl.<span style="color: #006600;">setValue</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"page"</span>, <span style="color: #ff0000;">"5"</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_vl.<span style="color: #0066CC;">start</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
ってな感じ。<br />
ついでに説明、インスタンス生成する際の第2引数でGETもしくはPOSTを指定できます。<br />
setValueの引数はいっこめが変数名、にこめが値。</p>
<p>ロード後は同じ。<br />
煮るなり焼くなり好きにどうぞ。</p>
<p>カウンターとかXML使うまでも無いちょっとした変数を外部ファイルなりプログラムから引き出したいときはこいつが便利です。<br />
そんな感じ。</p>
]]></content:encoded>
			<wfw:commentRss>http://minomix.net/blog/2008/03/07/81/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【CASA】数値操作の便利もの</title>
		<link>http://minomix.net/blog/2007/12/28/69/</link>
		<comments>http://minomix.net/blog/2007/12/28/69/#comments</comments>
		<pubDate>Fri, 28 Dec 2007 09:57:43 +0000</pubDate>
		<dc:creator>minon@minomix</dc:creator>
				<category><![CDATA[CASA Framework]]></category>

		<guid isPermaLink="false">http://minomix.net/blog/2007/12/28/69/</guid>
		<description><![CDATA[今回はUtil系
XML操作の時に使ったXmlUtilもUtil系の一つ。
つーわけで、NumberUtilの紹介。
一個一個メソッドの解説書いていこうと思って書き始めたらドキュメントの翻訳作業に近い気がしたので、翻訳し [...]]]></description>
			<content:encoded><![CDATA[<p>今回はUtil系<br />
<a href="http://minomix.net/blog/2007/12/13/64/">XML操作の時</a>に使ったXmlUtilもUtil系の一つ。</p>
<p>つーわけで、NumberUtilの紹介。</p>
<p>一個一個メソッドの解説書いていこうと思って書き始めたらドキュメントの翻訳作業に近い気がしたので、翻訳しちゃえ！と思ったら、英語さっぱりわからないので、自分で1からマニュアル書いてる気分になった。</p>
<p>ほとんど日本語訳というより、オイラが新たに書き起こしたに近いので、翻訳と思って読まないようにお願いします。</p>
<p><a href="http://labs.minomix.net/casa/doc/html/org_casaframework_util_NumberUtil.html" target="_blank">NumberUtilの翻訳のようで翻訳じゃないドキュメント</a></p>
<p>&gt;<a href="http://www.trick7.com/blog/2007/12/13-090437.php" target="_blank">trick7の人が真面目に翻訳</a>してるので、そっちを待った方がよかったりするかも</p>
<p>NumberUtilのメソッドは結構いろいろあって、地味に便利なのは、</p>
<p>指定した範囲のランダムな整数を作ってくれる　randomInteger<br />
指定した桁数で小数点以下を四捨五入してくれる　roundDecimalToPlace<br />
指定した範囲内に数値を丸めてくれる　makeBetween</p>
<p>他にも数値にカンマ入れて文字列にしてくれるやつがあったり、大小判定したりだとか、一桁の数字の頭に「0」を追加してくれるやつがあったりとか、結構いろいろあります。<br />
詳しくは見た方が早いと思うので、取りえずサクット目を通してみるのが良いかと。</p>
<p>こういうのって、みんな自作クラス用意してたり、その都度その都度コピペで持ってきたり、意外と毎回書いてたりする人も多いと思うんですよね。<br />
最初、CASA使っても自作クラス使うのも手間的にほどんど同じやん！って思ってたんやけど、結局は他のところでCASA使ったりするので、もうこれで良いやんって感じに使いまくりです。</p>
<p>こういう地味なものも用意してあるCASAがステキ。<br />
実はこういう地味なものが、制作スピードに一番影響がある気がしないでもない。</p>
<p>そんな感じ。</p>
]]></content:encoded>
			<wfw:commentRss>http://minomix.net/blog/2007/12/28/69/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【CASA】グリッド状にMCを整列する</title>
		<link>http://minomix.net/blog/2007/12/19/67/</link>
		<comments>http://minomix.net/blog/2007/12/19/67/#comments</comments>
		<pubDate>Wed, 19 Dec 2007 08:30:38 +0000</pubDate>
		<dc:creator>minon@minomix</dc:creator>
				<category><![CDATA[CASA Framework]]></category>

		<guid isPermaLink="false">http://minomix.net/blog/2007/12/19/67/</guid>
		<description><![CDATA[まるでSEOスパムのようなクラスリストに引っかかって、DistributionCollectionの検索ワードでたどり着く方が多いようなので、今回はこれで。
フォトギャラリーのサムネイルとかにそこそこ使えるけど、再配置し [...]]]></description>
			<content:encoded><![CDATA[<p>まるでSEOスパムのようなクラスリストに引っかかって、DistributionCollectionの検索ワードでたどり着く方が多いようなので、今回はこれで。<br />
フォトギャラリーのサムネイルとかにそこそこ使えるけど、再配置した時にアニメーションさせるとかが出来ないのでそのうち改造してやろうかしら。</p>
<p>使い方はいたって簡単。<br />
<span id="more-67"></span></p>
<div class="igBar"><span id="lactionscript-6"><a href="#" onclick="javascript:showCodeTxt('actionscript-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-6">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">import</span> org.<span style="color: #006600;">casaframework</span>.<span style="color: #006600;">layout</span>.<span style="color: #006600;">DistributionCollection</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">import</span> org.<span style="color: #006600;">casaframework</span>.<span style="color: #0066CC;">math</span>.<span style="color: #006600;">geom</span>.<span style="color: #006600;">Rectangle</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> _dist:DistributionCollection;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//インスタンス生成</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_dist = <span style="color: #000000; font-weight: bold;">new</span> DistributionCollection<span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">true</span> <span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//描画の範囲を設定　x, y,</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_dist.<span style="color: #006600;">setRectangle</span><span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> Rectangle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;color:#800000;">10</span>, <span style="color: #cc66cc;color:#800000;">10</span>, <span style="color: #cc66cc;color:#800000;">500</span>, <span style="color: #0066CC;">Number</span>.<span style="color: #0066CC;">POSITIVE_INFINITY</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//各アイテムのマージンの設定、CSSとmarginと同じ</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_dist.<span style="color: #006600;">setMargin</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;color:#800000;">20</span>, <span style="color: #cc66cc;color:#800000;">5</span>, <span style="color: #cc66cc;color:#800000;">5</span>, <span style="color: #cc66cc;color:#800000;">5</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> len:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;color:#800000;">10</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">var</span> i = <span style="color: #cc66cc;color:#800000;">0</span> ; i &amp;lt;len ; i++ <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//addItemで整列対象のMCを順番にポコポコ追加していく。</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_dist.<span style="color: #006600;">addItem</span><span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">attachMovie</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"box"</span>, <span style="color: #ff0000;">"box"</span>+i, <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//整列させる</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_dist.<span style="color: #006600;">positionItems</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>インスタンス作って、配置するエリアを指定して、マージン設定して、整列させるMCをポコポコ追加して、描画したら終了。<br />
相変わらず楽チンですね。</p>
<p>DistributionCollectionのインスタンス生成時にtrueを突っ込んでるところはピクセルスナップのオンオフです。<br />
多分ほとんどの場合でオンにしといた方が何かと幸せな気がする。</p>
<p>それと、setRectangleで描画範囲を設定するんですけど、Rectangleの設定で幅もしくは高さのどっちかにinfinityを設定しとかないとちゃんと整列してくれないので注意。</p>
<p>整列の順番はaddItemで突っ込んだ順番です。<br />
オブジェクトを指定して、何番目かという順番の取得は出来るけど、再設定できないっぽい。<br />
というわけで、順番の入れ替えとかは後から変更する手段が無いっぽいので注意。</p>
<p>応用としては、Rectangleを別に保持しておいて、Stageのサイズに合わせてonResizeとかで値変更して再描画、とかすると画面サイズにそって整列するサムネイルとかを楽チンに作れたりします。</p>
<p>そんな感じ。</p>
]]></content:encoded>
			<wfw:commentRss>http://minomix.net/blog/2007/12/19/67/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【CASA】nフレーム後に関数を実行する</title>
		<link>http://minomix.net/blog/2007/12/19/65/</link>
		<comments>http://minomix.net/blog/2007/12/19/65/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 18:40:20 +0000</pubDate>
		<dc:creator>minon@minomix</dc:creator>
				<category><![CDATA[CASA Framework]]></category>

		<guid isPermaLink="false">http://minomix.net/blog/2007/12/19/65/</guid>
		<description><![CDATA[やばい、クラスリスト作ったせいで"casaframework"で検索するとめっさ上位に表示されるようになってもーた。
と言うわけで検索キーワードであがってきたものから順に追加していこうかと思ったり。
今回はFrameDe [...]]]></description>
			<content:encoded><![CDATA[<p>やばい、クラスリスト作ったせいで"casaframework"で検索するとめっさ上位に表示されるようになってもーた。<br />
と言うわけで検索キーワードであがってきたものから順に追加していこうかと思ったり。</p>
<p>今回はFrameDelay</p>
<p>コレもさんざん既出なのは無視。<br />
<span id="more-65"></span><br />
AS2で書いていると、attachで呼び出した直後に呼び出したMovieClipのタイムライン上に配置しているMovieClipのクラスが読み込めてなくて、関数とか呼び出せない時が結構あるわけで・・・</p>
<p>たとえば</p>
<div class="igBar"><span id="lactionscript-9"><a href="#" onclick="javascript:showCodeTxt('actionscript-9'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-9">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">mc:<span style="color: #0066CC;">MovieClip</span> = <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">attachMovie</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"hoge"</span>, <span style="color: #ff0000;">"hoge_mc"</span>, <span style="color: #cc66cc;color:#800000;">1</span> <span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> mc.<span style="color: #006600;">hogehoge</span><span style="color: #66cc66;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
（hogehogeってプロパティはあらかじめhogeに設定したクラスで設定されているモノとする。）</p>
<p>こんな感じに書くと、undefinedが帰って来るわけですよ。<br />
これを回避しようと思うと、onEnterFrameとかで1回だけ実行して削除とか、結構めんどくさい事をしなけりゃならんわけ。</p>
<p>つーわけでFrameDelayの出番。</p>
<div class="igBar"><span id="lactionscript-10"><a href="#" onclick="javascript:showCodeTxt('actionscript-10'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-10">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> _mc:<span style="color: #0066CC;">MovieClip</span> = <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">attachMovie</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"hogehoge"</span>, <span style="color: #ff0000;">"newMc"</span>, <span style="color: #cc66cc;color:#800000;">1</span> <span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> mc.<span style="color: #006600;">hogehoge</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">// undefined</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> delay:FrameDelay = <span style="color: #000000; font-weight: bold;">new</span> FrameDelay<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">this</span>, <span style="color: #ff0000;">"init"</span>, <span style="color: #cc66cc;color:#800000;">1</span> <span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">delay.<span style="color: #0066CC;">start</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span> mc.<span style="color: #006600;">hogehoge</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">//OK</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
（ここでもhogehogeってプロパティはあらかじめhogeに設定したクラスで設定されているモノとする。）</p>
<p>FrameDelay作成時の引数は、一個目から<br />
呼び出す関数があるオブジェクト<br />
呼び出す関数の名前（String）<br />
何フレーム後に実行するか？</p>
<p>FrameDelayのインスタンスを作ったら、後はstartを実行すれば良いだけ。<br />
そしたら指定したnフレーム後に実行されちゃうわけです。</p>
<p>はい楽チン。</p>
<p>タイムラインにスクリプト書いてたらあんまり意識しないところな気がするけど、クラスベースで書いてたら結構使いますね。</p>
<p>こんな感じ。</p>
]]></content:encoded>
			<wfw:commentRss>http://minomix.net/blog/2007/12/19/65/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【CASA】CASAで超楽チンにXMLを使う</title>
		<link>http://minomix.net/blog/2007/12/13/64/</link>
		<comments>http://minomix.net/blog/2007/12/13/64/#comments</comments>
		<pubDate>Thu, 13 Dec 2007 12:16:04 +0000</pubDate>
		<dc:creator>minon@minomix</dc:creator>
				<category><![CDATA[CASA Framework]]></category>

		<guid isPermaLink="false">http://minomix.net/blog/2007/12/13/64/</guid>
		<description><![CDATA[AS2.0で外部データとしてXMLを使おうとすると、意外とめんどくさいのよね。
ファイル読み込んで、ちくちくXMLの階層移動しながらObjectに変換したりとか。
その辺を全てCASAが肩代わりしてくれて超便利。
個人的 [...]]]></description>
			<content:encoded><![CDATA[<p>AS2.0で外部データとしてXMLを使おうとすると、意外とめんどくさいのよね。<br />
ファイル読み込んで、ちくちくXMLの階層移動しながらObjectに変換したりとか。</p>
<p>その辺を全てCASAが肩代わりしてくれて超便利。<br />
個人的にかなり良く使うし、簡単なのでまずはこれから。</p>
<p>（いろんな人が解説されてて既出すぎるのは気のせい）<br />
<span id="more-64"></span></p>
<div class="igBar"><span id="lactionscript-13"><a href="#" onclick="javascript:showCodeTxt('actionscript-13'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-13">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">import</span> org.<span style="color: #006600;">casaframework</span>.<span style="color: #0066CC;">load</span>.<span style="color: #0066CC;">data</span>.<span style="color: #0066CC;">xml</span>.<span style="color: #006600;">XmlLoad</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">import</span> org.<span style="color: #006600;">casaframework</span>.<span style="color: #006600;">util</span>.<span style="color: #006600;">XmlUtil</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> _xmlLoad:XmlLoad;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> obj:<span style="color: #0066CC;">Object</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">function</span> loadXML<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//XmlLoadのインスタンスを作りつつ、XMLファイルのパスを指定</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_xmlLoad = <span style="color: #000000; font-weight: bold;">new</span> XmlLoad<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"data.xml"</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//ロード完了時のイベント登録　※１</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_xmlLoad.<span style="color: #006600;">addEventObserver</span><span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">this</span>, XmlLoad.<span style="color: #006600;">EVENT_LOAD_COMPLETE</span>, <span style="color: #ff0000;">"onLoadComplete"</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//読み込み開始</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">_xmlLoad.<span style="color: #0066CC;">start</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//ロード完了時にこれが呼ばれます。</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">onLoadComplete</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//XmlUtilを使って、XMLデータをオブジェクトに変換</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">obj = XmlUtil.<span style="color: #006600;">xmlToObject</span><span style="color: #66cc66;">&#40;</span> _xmlLoad.<span style="color: #006600;">getXml</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">loadXML<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>かんたん、かんたん。</p>
<p>※１のとこはCASAのEventDispatcherで、要になるところ。<br />
ListenerじゃなくてObserverなところに注意、最初結構とまどった。<br />
第1引数で、イベント発動時に呼び出す関数のスコープを指定。<br />
第2引数で、発動イベントを指定（この場合はXMLのロードが完了したときに発動）<br />
第3引数で、イベント発動時に呼び出す関数をStringで指定。<br />
というわけで、XMLのロードが完了したら自動的にonLoadCompleteが呼び出されるわけですよ。</p>
<p>ロード完了以外にパース完了とか、パースエラーだとか、ロード中のプログレスだったりとかいろいろイベントあるので、くわしくはドキュメントを読むよろし。<br />
自分は手抜きなのでロード完了以外ほとんど使った事がありませぬ。</p>
<p>で、ロード完了したらxmlLoadからXML取得して、XmlUtilのxmlToObjectにぶち込むとオブジェクトに変換されて返ってくるわけです。<br />
中身はちょいとややこしい感じがするけど、慣れの問題。<br />
自分でXMLの中身をたどっていく事を考えたらめちゃんこ楽。</p>
<p>基本はノード名→配列→属性名 or nodeValue</p>
<div class="igBar"><span id="lxml-14"><a href="#" onclick="javascript:showCodeTxt('xml-14'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-14">
<div class="xml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;data<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;hoge<span style="font-weight: bold; color: black;">&gt;</span></span></span>こんにちは<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/hoge<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;hoge<span style="font-weight: bold; color: black;">&gt;</span></span></span>さようなら<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/hoge<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;hage<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;boke</span> <span style="color: #000066;">title</span>=<span style="color: #ff0000;">"ぼけ"</span><span style="font-weight: bold; color: black;">&gt;</span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/boke<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/hage<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/data<span style="font-weight: bold; color: black;">&gt;</span></span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>こんなデータがあったとすると</p>
<p>obj["data"][0]["hoge"][1].src　で"hoge1.jpg"がとれる</p>
<p>obj["data"][0]["hoge"][1].nodeValue　で"こんにちは"がとれる</p>
<p>obj["data"][0]["hage"][0]["boke"][0].title　で"ぼけ"がとれる</p>
<p>らくちんですね。</p>
<p>最近作るFlashはXML読み込むものがほとんどなので、こいつのおかげですっかりCASAが手放せなくなったわけでございます。</p>
<p>そんな感じ。</p>
]]></content:encoded>
			<wfw:commentRss>http://minomix.net/blog/2007/12/13/64/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

