<?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>blog.cuegraphix.com</title>
	<atom:link href="http://blog.cuegraphix.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.cuegraphix.com</link>
	<description>Flash、ActionScript、Progressionとかの私的備忘録</description>
	<lastBuildDate>Mon, 17 Aug 2009 09:48:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>jQueryのFlexigridを使ってみた(2) データ成形編</title>
		<link>http://blog.cuegraphix.com/?p=98</link>
		<comments>http://blog.cuegraphix.com/?p=98#comments</comments>
		<pubDate>Tue, 07 Jul 2009 09:26:34 +0000</pubDate>
		<dc:creator>cue</dc:creator>
				<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.cuegraphix.com/?p=98</guid>
		<description><![CDATA[				前回 Flexigrid のパラメータのメモを残しましたが、表をHTMLに表示する際、データベースのデータをそのまま表示するのではなく、表示用に変換させてから表示するという場合が少なくありません。
				たとえ [...]]]></description>
			<content:encoded><![CDATA[				<p><a href="http://blog.cuegraphix.com/?p=86">前回</a> Flexigrid のパラメータのメモを残しましたが、表をHTMLに表示する際、データベースのデータをそのまま表示するのではなく、表示用に変換させてから表示するという場合が少なくありません。</p>
				<p>たとえば表に画像を表示したり、詳細ページのリンクを張ったりと。</p>
				<p>出力する JSON なり XML 自体を変換して出力してやれば済む話なんですが、タグをそのまま出力するのでエスケープ処理をさせたりしなくちゃならない。<br />
				なんとなくここまできたら表示部は表示部で分離させたい！となりました。</p>
				<p>で、いろいろ模索してると見つけました！</p>
				<p>パラメータに <strong>preProcess</strong> というメソッドを指定することができ、データ取得時の表示直前に全読み込みデータを引数として渡されます。</p>
				<p>たとえば下記のようなデータを読み込むとします。</p>
				<pre class="brush: jscript;">
{
page: 1,
total: 5,
rows: [
{id:'1',cell:['1','normal','テスト1','2009/07/07 15:32:27']},
{id:'2',cell:['2','sad','テスト2','2009/07/06 21:04:30']},
{id:'3',cell:['3','smile','テスト3','2009/07/06 13:18:29']},
{id:'4',cell:['4','smile','テスト4','2009/07/05 19:46:41']},
{id:'5',cell:['5','sad','テスト5','2009/07/05 15:25:15']}
]
}
</pre>
				<p>そして、Flexigrid を次のように設定して出力してみます。</p>
				<pre class="brush: jscript;">
$(&quot;#flex1&quot;).flexigrid({
	url: 'post.json',
	dataType: 'json',
	colModel : [
		{display: 'ID', name : 'id', width : 40, sortable : true, align: 'center'},
		{display: '気分', name : 'feel', width : 40, sortable : false, align: 'center'},
		{display: '件名', name : 'name', width : 200, sortable : true, align: 'left'},
		{display: '作成日', name : 'date', width : 120, sortable : true, align: 'left'},
		{display: 'リンク', name : 'link', width : 80, sortable : false, align: 'center'}
		],
	width: 600,
	height: 'auto'
});
</pre>
				<p>このような結果になります。<br />
				<img src="http://blog.cuegraphix.com/wp-content/uploads/2009/07/flexigrid13.gif" alt="flexigrid1" title="flexigrid1" width="600" height="164" class="alignnone size-full wp-image-105" /></p>
				<p>このデータを preProcess メソッドを設定し表示を変更します。<br />
				まずデータ内容を変更させるデータ受け取り関数を作成します。</p>
				<pre class="brush: jscript;">
function _preProcess( data ){
	$.each( data.rows,
		function(i,val) {
			val.cell[1] = '&lt;img src=&quot;img/'+val.cell[1]+'.gif&quot; width=&quot;12&quot; height=&quot;12&quot; /&gt;';

			var date = new Date(Date.parse(val.cell[3]));
			val.cell[3] = (date.getMonth()+1) + &quot;月&quot; + date.getDate() + &quot;日&quot; + date.getHours() + &quot;時&quot; + date.getMinutes() + &quot;分&quot;;

			val.cell[4] = '&lt;a href=&quot;hoge.php?id='+val.cell[0]+'&quot;&gt;詳細&lt;/a&gt;';
		}
	);
	return data;
}
</pre>
				<p>・セル1の気分データを同名の画像を表示するように変更<br />
				・セル3の日付データを日本語表記に変更<br />
				・セル4はデータとして存在しないが追加してIDを引数とした詳細ページへのリンクを設定</p>
				<p>という処理をします。<br />
				そして、Flexigrid の設定を変更します。</p>
				<pre class="brush: jscript;">
$(&quot;#flex1&quot;).flexigrid({
	url: 'post.json',
	dataType: 'json',
	colModel : [
		{display: 'ID', name : 'iso', width : 40, sortable : true, align: 'center', labelFunction: function(data){ return '&lt;a href=&quot;aaaaa.cgi?id='+data+'&quot;&gt;詳細&lt;/a&gt;'; }},
		{display: '気分', name : 'feel', width : 40, sortable : false, align: 'center'},
		{display: '件名', name : 'name', width : 200, sortable : true, align: 'left'},
		{display: '作成日', name : 'date', width : 120, sortable : true, align: 'left'},
		{display: 'リンク', name : 'link', width : 80, sortable : false, align: 'center'}
		],
	width: 600,
	height: 'auto',
	preProcess: _preProcess  /* ←追加 */
});
</pre>
				<p>表示したのが下記です。<br />
				<img src="http://blog.cuegraphix.com/wp-content/uploads/2009/07/flexigrid2.gif" alt="flexigrid2" title="flexigrid2" width="600" height="164" class="alignnone size-full wp-image-107" /></p>
				<p><a href="/demo/Flexigrid/test.html">デモ</a></p>
				<p>これで表示部とデータ出力を完全に分けられるのではないかと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cuegraphix.com/?feed=rss2&amp;p=98</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQueryのFlexigridを使ってみた</title>
		<link>http://blog.cuegraphix.com/?p=86</link>
		<comments>http://blog.cuegraphix.com/?p=86#comments</comments>
		<pubDate>Tue, 07 Jul 2009 07:45:51 +0000</pubDate>
		<dc:creator>cue</dc:creator>
				<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.cuegraphix.com/?p=86</guid>
		<description><![CDATA[				データを簡単にテーブルにフォーマットしてくれるjQuery プラグイン Flexigrid を使ってみた。
				Flexigrid
				http://www.flexigrid.info/
				Goo [...]]]></description>
			<content:encoded><![CDATA[				<p>データを簡単にテーブルにフォーマットしてくれるjQuery プラグイン Flexigrid を使ってみた。</p>
				<p>Flexigrid<br />
				<a href="http://www.flexigrid.info/">http://www.flexigrid.info/</a></p>
				<p>Google Code<br />
				<a href="http://code.google.com/p/flexigrid/">http://code.google.com/p/flexigrid/</a></p>
				<p>DBから吸い出して管理画面などでさくっとテーブルにしたい場合に非常に便利！</p>
				<p>具体的にどんなことができるのかはマイコミジャーナルさんの記事がわかりやすいのでリンク<br />
				<a href="http://journal.mycom.co.jp/articles/2008/06/25/flexigrid/index.html">わずか数行で&#8221;ものすごいテーブル&#8221;に! &#8211; jQueryプラグイン「Flexigrid」</a></p>
				<p>ただこのプラグインあまりリファレンスがない・・・<br />
				jsを開けばオプションは一目瞭然なのだが、自分メモとして残しておきます。</p>
				<p>オプションパラメータ一覧</p>
				<h3>UIパラメータ</h3>
				<dl>
				<dt><strong>width</strong></dt>
				<dd>テーブルの横幅。数値もしくは auto が利用可能。auto に設定した際は横のリサイズは無効。<br />
				デフォルト：auto</dd>
				<dt><strong>height</strong></dt>
				<dd>テーブルの高さ。数値もしくは auto が利用可能。auto に設定した際は縦のリサイズは無効。<br />
				デフォルト：200</dd>
				<dt><strong>striped</strong></dt>
				<dd>格子行を利用するかどうか。<br />
				デフォルト：true</dd>
				<dt><strong>novstripe</strong></dt>
				<dd>列の区切りを表示しないかどうか。（no vertical stripe）<br />
				デフォルト：false</dd>
				<dt><strong>minwidth</strong></dt>
				<dd>各列の最小幅<br />
				デフォルト：30</dd>
				<dt><strong>minheight</strong></dt>
				<dd>テーブルの最小高さ<br />
				デフォルト：80</dd>
				<dt><strong>resizable</strong></dt>
				<dd>リサイズを可能にするかどうか。true にすると width および height が auto でなければそれぞれ右端、下端にリサイズアイコンが表示される<br />
				デフォルト：true</dd>
				<dt><strong>title</strong></dt>
				<dd>テーブルのキャプション。設定するとタイトル行が表示される。</dd>
				<dt><strong>showTableToggleBtn</strong></dt>
				<dd>テーブルの表示非表示ボタンを設置するかどうか。title に文字が設定されている場合のみ有効。<br />
				デフォルト：false</dd>
				<dt><strong>minColToggle</strong></dt>
				<dd>最小列数。この設定した列数以下は非表示にできなくする。<br />
				デフォルト：1</dd>
				<dt><strong>showToggleBtn</strong></dt>
				<dd>列を非表示にするボタンポップアップを表示するかどうか。<br />
				デフォルト：true</dd>
				<dt><strong>singleSelect</strong></dt>
				<dd>行の複数選択を可能にするかどうか。<br />
				デフォルト：false</dd>
				</dl>
				<h3>Ajaxによる動的出力で利用するパラメータ</h3>
				<dl>
				<dt><strong>url</strong></dt>
				<dd>Ajax のリクエストされるURL。XML もしくは JSON 出力</dd>
				<dt><strong>method</strong></dt>
				<dd>送信メソッド<br />
				デフォルト：POST</dd>
				<dt><strong>dataType</strong></dt>
				<dd>読み込むデータのタイプ。json or xml。必ず小文字で指定しなければならないことに注意！<br />
				デフォルト：xml</dd>
				<dt><strong>errormsg</strong></dt>
				<dd>エラーが発生した際のメッセージ</dd>
				<dt><strong>usepager</strong></dt>
				<dd>ページャーを使用するかどうか。<br />
				デフォルト：false</dd>
				<dt><strong>nowrap</strong></dt>
				<dd>セル内で折り返しを許可するかどうか<br />
				デフォルト：true</dd>
				<dt><strong>page</strong></dt>
				<dd>現在表示しているページ数。読み込んだ JSON もしくは XML で上書きされる。</dd>
				<dt><strong>total</strong></dt>
				<dd>格納されているデータの総行数。読み込んだ JSON もしくは XML で上書きされる。</dd>
				<dt><strong>sortname</strong></dt>
				<dd>ソートする列。指定しないと送信時 undefined が POST されてしまうので必須。</dd>
				<dt><strong>sortorder</strong></dt>
				<dd>ソートの方向。asc or desc。指定しないと送信時 undefined が POST されてしまうので必須。</dd>
				<dt><strong>query</strong></dt>
				<dd>検索されたキーワード。</dd>
				<dt><strong>qtype</strong></dt>
				<dd>検索対象の列名</dd>
				<dt><strong>rp</strong></dt>
				<dd>1ページに表示する行数。<br />
				デフォルト：15</dd>
				<dt><strong>useRp</strong></dt>
				<dd>1ページに表示する行数を変更できるセレクトボックスを表示するかどうか。<br />
				デフォルト：true</dd>
				<dt><strong>rpOptions</strong></dt>
				<dd>useRp を有効にした際のセレクトボックス値の配列。<br />
				デフォルト：[10,15,20,25,40]</dd>
				<dt><strong>pagestat</strong></dt>
				<dd>現在表示しているページの説明文フォーマット<br />
				表示開始行：{from}、表示終了行：{to}、総数：{total}が利用できる。<br />
				デフォルト：Displaying {from} to {to} of {total} items</dd>
				<dt><strong>procmsg</strong></dt>
				<dd>読み込み中時フッターに表示されるメッセージ。<br />
				デフォルト：Processing, please wait &#8230;</dd>
				<dt><strong>no msg</strong></dt>
				<dd>検索データが存在しなかった場合のメッセージ。<br />
				デフォルト：No items</dd>
				<dt><strong>autoload</strong></dt>
				<dd>HTML表示時に自動的に読み込みを開始するかどうか。<br />
				デフォルト：true</dd>
				<dt><strong>hideOnSubmit</strong></dt>
				<dd>送受信中に現在表示データ行を隠すかどうか。（？）<br />
				デフォルト：true</dd>
				<dt><strong>blockOpacity</strong></dt>
				<dd>hideOnSubmit を有効にした際の表示データ行の透明度。（？）<br />
				デフォルト：0.5</dd>
				</dl>
				<h3>その他パラメータ</h3>
				<dl>
				<dt><strong>colModel</strong></dt>
				<dd>列の設定オブジェクトをもつ配列<br />
				display：列の表示名<br />
				name：列のユニークID（テーブルカラム名）必須<br />
				width：列幅<br />
				sortable：列のソートを有効にするかどうか<br />
				align：文字の配置<br />
				hide：非表示にするかどうか
				</dd>
				<dt><strong>searchitems</strong></dt>
				<dd>検索対象となる列の配列<br />
				display：検索対象を選択するセレクトボックスの表示文字<br />
				name：列のユニークID（テーブルカラム名）必須<br />
				isdefault：初期選択されているかどうか。
				</dd>
				<dt><strong>buttons</strong></dt>
				<dd>ヘッダにボタンを表示する際のボタン情報を格納した配列<br />
				name：ボタン表示文字<br />
				bclass：ボタンの表示クラス<br />
				onpress：ボタンを押された際に呼び出されるメソッド</p>
				<p>separator：セパレータを表示
				</dd>
				</dl>
				<h3>イベントハンドラメソッド</h3>
				<dl>
				<dt><strong>onToggleCol</strong></dt>
				<dd>列の表示非表示が変更された際に呼び出されるイベントハンドラメソッド。</dd>
				<dt><strong>onChangeSort</strong></dt>
				<dd>ソートが変更された際に呼び出されるイベントハンドラメソッド。</dd>
				<dt><strong>onSuccess</strong></dt>
				<dd>表示が成功した際に呼び出されるイベントハンドラメソッド。</dd>
				<dt><strong>onSubmit</strong></dt>
				<dd>データの送受信が行われる直前に呼び出されるイベントハンドラメソッド。</dd>
				</dl>
				<h3>その他メソッド</h3>
				<dl>
				<dt><strong>preProcess</strong></dt>
				<dd>データを受信した直後にデータを成形するため（と思われる）に呼び出される。<br />
				引数：読み込みデータ<br />
				戻り値：成形データ</dd>
				</dl>
				<h3>Flexigrid API メソッド</h3>
				<dl>
				<dt><strong>flexigrid( options )</strong></dt>
				<dd>テーブルを Flexigrid 化する。コンストラクタ。</dd>
				<dt><strong>flexReload()</strong></dt>
				<dd>データの再読み込みを行う。</dd>
				<dt><strong>flexOptions( options )</strong></dt>
				<dd>オプションパラメータの変更を行う。</dd>
				<dt><strong>flexToggleCol( culumn_id, visible )</strong></dt>
				<dd>列の表示・非表示を切り替える。</dd>
				<dt><strong>flexAddData( data )</strong></dt>
				<dd>データを追加する。</dd>
				<dt><strong>noSelect</strong></dt>
				<dd>データ行の文字列をカーソルで選択できないようにする。<br />
				へー。そんなことできるんだー。</dd>
				</dl>
				<p>これで合ってるかな？<br />
				もし違ってればやさしくツッコミください。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cuegraphix.com/?feed=rss2&amp;p=86</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>extends Progression 拡張機能コンテストで Progression 開発者賞受賞</title>
		<link>http://blog.cuegraphix.com/?p=73</link>
		<comments>http://blog.cuegraphix.com/?p=73#comments</comments>
		<pubDate>Mon, 15 Jun 2009 08:10:21 +0000</pubDate>
		<dc:creator>cue</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Progression]]></category>

		<guid isPermaLink="false">http://blog.cuegraphix.com/?p=73</guid>
		<description><![CDATA[				半年ほどブログ放置してすいません・・・
				extends Progression 拡張機能コンテスト
				http://extends.progression.jp/
				Progression 開 [...]]]></description>
			<content:encoded><![CDATA[				<p>半年ほどブログ放置してすいません・・・</p>
				<p>extends Progression 拡張機能コンテスト<br />
				<a href="http://extends.progression.jp/">http://extends.progression.jp/</a></p>
				<p>Progression 開発者賞というものをいただいてしまいました！<br />
				感謝感激です。<br />
				しかも、予定にはなかった Progression 開発者賞という賞を新設していただくという暖かい配慮に心より感謝感謝です。<br />
				extends Progression 拡張機能コンテスト関係者の皆様本当にありがとうございました！</p>
				<p>今回応募したものは LiquidLayout というライブラリです。<br />
				フルフラッシュサイトを作るときに、AS3になってからもっとやっかいになってしまった表示オブジェクト等の配置をカンタンにしちゃえというライブラリです。<br />
				ExDocument をルートシーンに使用していれば、LiquidLayout も利用可能という代物になっており、Progression に限らず利用できてしまうので、このあたりが Progression 開発者賞を新設していただけるという関係者の皆様を困惑させてしまう結果になってしまったようです。taka:niumさんすいません！</p>
				<p><a href="http://blog.cuegraphix.com/demo/LiquidLayout/liquid_layout.html" target="_blank">提出したプレゼン資料</a><br />
				（Slideライブラリ使用。左右キーで移動します）</p>
				<p><a href="http://blog.cuegraphix.com/demo/LiquidLayout/sample.html" target="_blank">サンプルデモ</a><br />
				（設定を変えたり、画面をぐりぐりリサイズしてご確認ください）</p>
				<p><a href="http://blog.cuegraphix.com/dl/LiquidLayout.zip">ソース一式</a><br />
				（サンプルデモで使用したクラスファイルも同梱しています）</p>
				<p>Tweener を同じような構造をとっており、addLayout メソッドでオブジェクトとパラメータを追加して使用します。<br />
				数値で指定した画面位置からの距離、数値を文字列で渡すことによりパーセンテージでの指定が可能です。</p>
				<p>Tweener ライブラリと大きく異なる部分は、Tweener は静的メソッドでアクセスするのに対し、LiquidLayout はインスタンスを生成して使用します。</p>
				<pre class="brush: as3;">
var lauout:LiquidLayout = new LiquidLayout( document );
layout.addLayout( mc, { center: 0, middle: 0 } );
</pre>
				<p>この部分は最後まで悩んだというか今現在でも悩んでいるのですが、オブジェクトの最大幅・最小幅・最大高さ・最小高さなどを、インスタンス本体が持っていることにあります。<br />
				もし、あるコンテンツだけ異なる設定をしたいとなった場合に、静的では対応が難しかったためインスタンス生成する形をとりました。</p>
				<p>Flasherの方々はなにかしらのライブラリを使用されていると思いますが、もし LiquidLayout 気に入った！となれば使っていただけると幸いです。<br />
				また、こうしたほうがいいんじゃない？などご意見いただけるともっと幸いです。</p>
				<p><span id="more-73"></span><br />
				各ファイルを更新しました（2009/06/15 8:29:20 pm）</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cuegraphix.com/?feed=rss2&amp;p=73</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>ショックウェーブ解散</title>
		<link>http://blog.cuegraphix.com/?p=71</link>
		<comments>http://blog.cuegraphix.com/?p=71#comments</comments>
		<pubDate>Thu, 29 Jan 2009 08:51:55 +0000</pubDate>
		<dc:creator>cue</dc:creator>
				<category><![CDATA[雑記]]></category>

		<guid isPermaLink="false">http://blog.cuegraphix.com/?p=71</guid>
		<description><![CDATA[				Shockwave.com運営会社ショックウェーブエンターテインメントが解散。
				１月31日をもって終了します。
				CATMANやStainboyを見て疲れを癒して、ちょっとの休憩でジグソーパズルやZ [...]]]></description>
			<content:encoded><![CDATA[				<p>Shockwave.com運営会社ショックウェーブエンターテインメントが解散。<br />
				１月31日をもって終了します。</p>
				<p>CATMANやStainboyを見て疲れを癒して、ちょっとの休憩でジグソーパズルやZOO KEEPERをやってしまって、仕事が手に付かないくらいはまったことが1度や2度ではないので、やっぱりさびしいものがありますね。。</p>
				<p>こちらから最後のメッセージが見れます。<br />
				「<a href="http://jp.shockwave.com/animations/drama/shockwave/play.html">Shockwave から皆様へ　9年6ヶ月分の感謝を込めて</a>」</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cuegraphix.com/?feed=rss2&amp;p=71</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>embedSWFの引数メモ（Progression3.1.2）</title>
		<link>http://blog.cuegraphix.com/?p=68</link>
		<comments>http://blog.cuegraphix.com/?p=68#comments</comments>
		<pubDate>Tue, 27 Jan 2009 10:50:08 +0000</pubDate>
		<dc:creator>cue</dc:creator>
				<category><![CDATA[Progression]]></category>

		<guid isPermaLink="false">http://blog.cuegraphix.com/?p=68</guid>
		<description><![CDATA[				Progression3.1.2にアップデートで、SWFObject がバージョン 2.1 にアップデートされたことに伴い progression.js も大きく変更されているようで、embedSWFという関数で [...]]]></description>
			<content:encoded><![CDATA[				<p>Progression3.1.2にアップデートで、SWFObject がバージョン 2.1 にアップデートされたことに伴い progression.js も大きく変更されているようで、embedSWFという関数で表示できるようになっている。</p>
				<p>ただ、僕が今現状で作っているサイトで最初に読み込むファイル名を preloader.swf という名前から別のものに変更してしまっており、index.html 内にその記述がどこにもないので、渡すことの出来そうな引数を調べてみたのでメモ。</p>
				<p>渡すことの可能な引数と初期値一覧</p>
				<pre class="brush: jscript;">
url:&quot;preloader.swf&quot;,
replaceElementId:&quot;attention&quot;,
width:640,
height:480,
adjustHorizontal:false,
adjustVertical:false,
centering:true,
version:&quot;9.0.45&quot;,
useExpressInstall:true,
flashvars:{},
params:{
	bgcolor:&quot;#FFFFFF&quot;,
	wmode:&quot;window&quot;,
	allowfullscreen:true,
	allowscriptaccess:&quot;samedomain&quot;
}
attributes:{}
</pre>
				<p>params の中は SWFObjectにそのまま渡されるだけだと思うので、Flashのparam設定が使えると思われます。<br />
				<a href="http://www.adobe.com/go/tn_12701">http://www.adobe.com/go/tn_12701</a></p>
				<ul>
				<li><strong>url</strong><br />
				読み込みを開始するSWFへのパス</li>
				<li><strong>replaceElementId</strong><br />
				SWFを表示するHTML要素のID属性名</li>
				<li><strong>width</strong><br />
				SWFの横幅（SWFForceSizeの最小幅（？））</li>
				<li><strong>height</strong><br />
				SWFの高さ（SWFForceSizeの最小高さ（？））</li>
				<li><strong>adjustHorizontal</strong><br />
				横幅100%表示にするかどうか</li>
				<li><strong>adjustVertical</strong><br />
				高さ100%表示にするかどうか</li>
				<li><strong>centering</strong><br />
				画面の中央表示をするかどうか（？）</li>
				<li><strong>version</strong><br />
				Flash Playerのバージョン</li>
				<li><strong>useExpressInstall</strong><br />
				Express Installを適用するかどうか<br />
				（ただし、expressinstall.swfのパスは”contents/scripts/swfobject/expressinstall.swf”で固定のようです。）</li>
				<li><strong>flashvars</strong><br />
				FlashVars</li>
				<li><strong>params</strong><br />
				params</li>
				<li><strong>attributes</strong><br />
				attributes</li>
				</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.cuegraphix.com/?feed=rss2&amp;p=68</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Progressionクラスベースオートアップデート</title>
		<link>http://blog.cuegraphix.com/?p=62</link>
		<comments>http://blog.cuegraphix.com/?p=62#comments</comments>
		<pubDate>Wed, 21 Jan 2009 08:13:31 +0000</pubDate>
		<dc:creator>cue</dc:creator>
				<category><![CDATA[Progression]]></category>

		<guid isPermaLink="false">http://blog.cuegraphix.com/?p=62</guid>
		<description><![CDATA[				Progressionを3.0.8から3.1.2へやっと先日アップデートしました。
				そこで、オートアップデートを使用すると、下記のエラーが発生し失敗。
				... 問題が発生したためアップデート処理を [...]]]></description>
			<content:encoded><![CDATA[				<p>Progressionを3.0.8から3.1.2へやっと先日アップデートしました。</p>
				<p>そこで、オートアップデートを使用すると、下記のエラーが発生し失敗。</p>
				<pre>... 問題が発生したためアップデート処理を中断します。
... バックアップデータを復元します。 

プロジェクトの復元に失敗しました。バックアップデータから手動で復元してください。</pre>
				<p>プロジェクトフォルダを見てみると、フォルダは存在するもののファイルというファイルがもぬけの殻・・・<br />
				エラーログにバックアップデータがあると書いてあるということと、アップデート前に事前にプロジェクトの全バックアップを取っていたのですが、それでも冷や汗が出ました。。</p>
				<p>調べてみると、<a href="http://forum.progression.jp/">Progression Forum</a>でflabakaさんが<a href="http://forum.progression.jp/index.php?topic=43.0">オートアップデート機能について情報共有</a>されていて、どうやら現在進行しているプロジェクトはSubVersionで管理していて、それで生成される「.svn」というフォルダがよろしくないことが判明。<br />
				flabakaさんのこちらの記事で詳しく説明されてます。<br />
				<a href="http://flabaka.com/blog/?p=390">flabaka &#8211; libsフォルダにカスタムクラスを入れてると、オートアップデートが使えない！</a></p>
				<p>flabakaさんの記事によると、「.svn」フォルダを全削除すればおｋとありますが、プロジェクト自体をSubVersion管理しているのでそうするわけにも行かず、別ディレクトリに新たなプロジェクトを作成（テストプロジェクトなどのアップデートでも可）して、リソースノートとにらめっこしながら「libs」ファイルの中身を上書きという形を取りました。</p>
				<p>3.0.8 から 3.1.2 へのアップデートだったので、追加クラス・変更クラスについては上書きで問題ないと思いますが、削除クラスとしては HIGEWheel.as だけかなと思います。</p>
				<p><span style="color: #993300;">削除：org.libspark.utils.ui.HIGEWheel</span><br />
				↓<br />
				<span style="color: #008000;">追加：org.libspark.ui.SWFWheel</span></p>
				<p>これに伴い /src/libs/org/libspark/utils のフォルダも必要なくなります。</p>
				<p>今回の教訓としてはとりあえずなんかするときはバックアップを取っておこうと心に誓いました。</p>
				<p><span id="more-62"></span><br />
				あとWinMergeで調べたところ、deployフォルダ内は結構変更されている感じです。<br />
				ここは総入れ替えなり、ソース書き換えなり、臨機応変に対応すべきところかと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cuegraphix.com/?feed=rss2&amp;p=62</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>基本クラスの変更で警告</title>
		<link>http://blog.cuegraphix.com/?p=52</link>
		<comments>http://blog.cuegraphix.com/?p=52#comments</comments>
		<pubDate>Mon, 05 Jan 2009 15:30:58 +0000</pubDate>
		<dc:creator>cue</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.cuegraphix.com/?p=52</guid>
		<description><![CDATA[				_level0.KAYACさんのフォント埋め込み時のパブリッシュの高速化の方法を使ってフォントの埋め込みを行うんですが、あるシンボルを「コンパイルされたクリップに変換」をしていると、どうやらその後どのムービークリ [...]]]></description>
			<content:encoded><![CDATA[				<p><a href="http://level0.kayac.com/">_level0.KAYAC</a>さんの<a href="http://level0.kayac.com/2007/08/post_10.php">フォント埋め込み時のパブリッシュの高速化</a>の方法を使ってフォントの埋め込みを行うんですが、あるシンボルを「コンパイルされたクリップに変換」をしていると、どうやらその後どのムービークリップシンボルの基本クラスが変更できない模様。</p>
				<p>「コンパイルされたクリップに変換」されたシンボルがある状態で、その後作成したシンボルにflash.display.MovieClipの拡張クラスを基本クラスに指定すると、</p>
				<p><img class="alignnone size-full wp-image-54" title="警告" src="http://blog.cuegraphix.com/wp-content/uploads/2009/01/baseclass.gif" alt="警告" width="497" height="249" /></p>
				<p>「指定されたクラスは定義済みで自身のサブクラスを拡張しているので、基本クラスは使用されません。基本クラスを使用する場合は、自動生成される [クラス] フィールドでクラス名を指定するか、デフォルトの基本クラス &#8216;flash.display.MovieClip&#8217; を [基本クラス] フィールドに入力してください」</p>
				<p>と長々と警告。</p>
				<p>書き出しにはなんら問題ないらしく、_level0.KAYACさんのフォント埋め込みはパブリッシュが早く非常によいので、シンボルの基本クラスを変更するときだけコンパイルクリップをライブラリから削除して、シンボルの基本クラスを設定した後、もう一度作成するか退避させていたコンパイルクリップを戻してくるという方法で回避することにします。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cuegraphix.com/?feed=rss2&amp;p=52</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CastMovieClipを多用しすぎるのも危険？</title>
		<link>http://blog.cuegraphix.com/?p=43</link>
		<comments>http://blog.cuegraphix.com/?p=43#comments</comments>
		<pubDate>Thu, 18 Dec 2008 07:46:14 +0000</pubDate>
		<dc:creator>cue</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Progression]]></category>

		<guid isPermaLink="false">http://blog.cuegraphix.com/?p=43</guid>
		<description><![CDATA[				こんな生意気なことを言えばtaka:nium様に怒られるかもしれないが、ちょっと先日困ったことが発生したのでアップ。
				非常に便利なのでなにかとシンボルを作るときもCastMovieClipを継承したMov [...]]]></description>
			<content:encoded><![CDATA[				<p>こんな生意気なことを言えば<a href="http://blog.progression.jp/">taka:nium様</a>に怒られるかもしれないが、ちょっと先日困ったことが発生したのでアップ。</p>
				<p>非常に便利なのでなにかとシンボルを作るときもCastMovieClipを継承したMovieClipを作成しているわけなんですが、先日DataGridのCellRendererのスキンをいじくりたいことがあって、それらもCastMovieClip継承のクラスを作って入れ込んでみた。</p>
				<p>そしたら、どうにもこうにも動きがもっさりしている・・・<br />
				僕のソースがきっと悪いんだと思って、あれやこれやをコメントアウトしてみるがどうにも改善しない。<br />
				それで単純にリンケージの基本クラスだけを変更してみたものでテスト。</p>
				<ul>
				<li><a href="http://blog.cuegraphix.com/wp-content/uploads/2008/12/data_grid_mc.html">基本クラス：flash.display.MovieClip</a></li>
				<li><a href="http://blog.cuegraphix.com/wp-content/uploads/2008/12/data_grid_cast.html">基本クラス：jp.progression.casts.CastMovieClip</a></li>
				<li><a href="http://blog.cuegraphix.com/wp-content/uploads/2008/12/data_grid_ex.html">基本クラス：jp.nium.display.ExMovieClip</a></li>
				</ul>
				<p>この3種類を作ってテスト。<br />
				Google Chromeのタスクマネージャで確認してみる</p>
				<p>そうすると、CastMovieClip・ExMovieClipを継承したほうでは、DataGrid内でマウスを動かしたりスクロールさせたりすると、メモリが増える増える！<br />
				<a href="http://blog.cuegraphix.com/wp-content/uploads/2008/12/task.jpg"><img class="alignnone size-medium wp-image-44" title="タスクマネージャ" src="http://blog.cuegraphix.com/wp-content/uploads/2008/12/task-300x169.jpg" alt="" width="300" height="169" /></a></p>
				<p>普通にMovieClip継承でも増えるんやけど、増え方が尋常じゃない・・・<br />
				カラム数が増えると当たり前だけど増え幅も増大する。。<br />
				そして一度上がったものは減ってくれない・・・・</p>
				<p>もうちょい単純なソースで検証してみる。<br />
				ただただENTER_FRAMEで追加削除を繰り返すのみのクラスを作って検証。<br />
				生成するものをCastMovieClipかMovieClipかを切り替えて書き出してみる。</p>
				<pre class="brush: as3;">
package
{
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.Event;
	import jp.progression.casts.CastDocument;
	import jp.progression.casts.CastMovieClip;
	import jp.progression.Progression;

	public class AddCastIndex extends CastDocument
	{
		public var prog:Progression;

		public function AddCastIndex()
		{
		}

		protected override function _onInit():void
		{
			prog = new Progression( &quot;index&quot;, stage );

			prog.root.onInit = function():void
			{
				var cast:CastMovieClip;
				var ny:Number = 0;
				var container:Sprite = new Sprite();
				var enterFrame:Function = function( e:Event ):void
				{
					if ( cast ) { container.removeChild( cast ); }
					cast = new CastMovieClip();
					cast.graphics.beginFill( 0 );
					cast.graphics.drawRect( 0, 0, stageWidth, 20 );
					ny = ( ny + 20 ) % stageHeight;
					cast.y = ny;
					container.addChild( cast );
				}
				prog.container.addChild( container );
				container.addEventListener( Event.ENTER_FRAME, enterFrame );
			}
			prog.goto( prog.firstSceneId );
		}
	}
}&lt;
</pre>
				<ul>
				<li><a href="http://blog.cuegraphix.com/wp-content/uploads/2008/12/add_mc.html">MovieClipを生成</a></li>
				<li><a href="http://blog.cuegraphix.com/wp-content/uploads/2008/12/add_cast.html">CastMovieClipを生成</a></li>
				</ul>
				<p>ENTER_FRAME時に一個しか生成しないので、微妙な差だけど、やっぱりCastMovieClipのほうが増加率は高い。</p>
				<p>中をまさぐって検証するには敷居が高すぎるのでやめておこう・・・<br />
				でもCastMovieClipを使わないなんてもうできない体になっちゃって、そんな世界僕の中にはもうないけど、こういう使い捨てで済むMovieClipやSpriteはCast（Ex）系を継承せずに単純にMovieClipやSpriteを継承するほうがよさそう。</p>
				<p>ってゆうのであってるのかな？？</p>
				<p><span id="more-43"></span>net.hires.debug.Stats を導入してSWF内メモリ表示に変更</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cuegraphix.com/?feed=rss2&amp;p=43</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ProcessEvent イベントフローについて(2)</title>
		<link>http://blog.cuegraphix.com/?p=41</link>
		<comments>http://blog.cuegraphix.com/?p=41#comments</comments>
		<pubDate>Fri, 28 Nov 2008 08:03:37 +0000</pubDate>
		<dc:creator>cue</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Progression]]></category>

		<guid isPermaLink="false">http://blog.cuegraphix.com/?p=41</guid>
		<description><![CDATA[				前回のままだと、特殊な使い方すぎてイベントフローの検証になってないので、ユーザーイベントでの遷移に変更して検証。
				前回のクラスに移動用ボタンを設置したIndexクラスを作成します。
				
packag [...]]]></description>
			<content:encoded><![CDATA[				<p>前回のままだと、特殊な使い方すぎてイベントフローの検証になってないので、ユーザーイベントでの遷移に変更して検証。</p>
				<p>前回のクラスに移動用ボタンを設置したIndexクラスを作成します。</p>
				<pre class="brush: as3;">
package
{
	import jp.progression.casts.CastButton;
	import jp.progression.casts.CastDocument;
	import jp.progression.commands.AddChild;
	import jp.progression.commands.Goto;
	import jp.progression.commands.RemoveChild;
	import jp.progression.commands.Trace;
	import jp.progression.Progression;
	import jp.progression.scenes.SceneId;
	import jp.progression.scenes.SceneObject;

	public class Index extends CastDocument
	{
		public var prog:Progression;

		public function Index()
		{

		}

		protected override function _onInit():void
		{
			prog = new Progression( &quot;index&quot;, stage );

			prog.onProcessStart     = function() { trace( &quot;onProcessStart :&quot; + prog.eventType ); }
			prog.onProcessScene     = function() { trace( &quot;onProcessScene :&quot; + prog.eventType ); }
			prog.onProcessComplete  = function() { trace( &quot;onProcessComplete :&quot; + prog.eventType + &quot;\n------&quot; ); }
			prog.onProcessEvent     = function() { trace( &quot;onProcessEvent :&quot; + prog.eventType ); }
			prog.onProcessError     = function() { trace( &quot;onProcessError :&quot; + prog.eventType ); }
			prog.onProcessInterrupt = function() { trace( &quot;onProcessInterrupt :&quot; + prog.eventType + &quot;\n------&quot; ); }

			var b1:CastButton = new CastButton();
			b1.graphics.beginFill( 0xFF0000 );
			b1.graphics.drawRect( 0, 0, 100, 100 );
			b1.sceneId = new SceneId( &quot;/index/scene2&quot; );

			var b2:CastButton = new CastButton();
			b2.graphics.beginFill( 0x0000FF );
			b2.graphics.drawRect( 0, 0, 100, 100 );
			b2.sceneId = new SceneId( &quot;/index/scene3&quot; );

			prog.root.addScene( new SceneObject( &quot;scene1&quot;, {
				onLoad: function():void {
					this.addCommand(
						new Trace( &quot;scene1 : onLoad&quot; )
					);
				},
				onInit: function():void {
					this.addCommand(
						new Trace( &quot;scene1 : onInit&quot; ),
						new AddChild( prog.container, b1 )
					);
				},
				onGoto: function():void {
					this.addCommand(
						new Trace( &quot;scene1 : onGoto&quot; ),
						new RemoveChild( prog.container, b1 )
					);
				},
				onUnload: function():void {
					this.addCommand(
						new Trace( &quot;scene1 : onUnload&quot; )
					);
				}
			} ) );

			prog.root.addScene( new SceneObject( &quot;scene2&quot;, {
				onLoad: function():void {
					this.addCommand(
						new Trace( &quot;scene2 : onLoad&quot; )
					);
				},
				onInit: function():void {
					this.addCommand(
						new Trace( &quot;scene2 : onInit&quot; ),
						new AddChild( prog.container, b2 )
					);
				},
				onGoto: function():void {
					this.addCommand(
						new Trace( &quot;scene2 : onGoto&quot; ),
						new RemoveChild( prog.container, b2 )
					);
				},
				onUnload: function():void {
					this.addCommand(
						new Trace( &quot;scene2 : onUnload&quot; )
					);
				}
			} ) );

			prog.goto( new SceneId( &quot;/index/scene1&quot; ) );
		}
	}
}
</pre>
				<p>まず /index/scene1 に行くと赤いボタンが配置され、クリックすると /index/scene2 に飛び青いボタンが表示され、そのボタンをクリックすると設定されていない /index/scene3 に遷移するよう要求しエラーを発生させます。</p>
				<p>出力結果</p>
				<pre>onProcessStart :null
onProcessScene :load
onProcessEvent :load
onProcessEvent :descend
onProcessScene :load
onProcessEvent :load
scene1 : onLoad
onProcessEvent :init
scene1 : onInit
onProcessComplete :init
------
onProcessStart :init
onProcessEvent :goto
scene1 : onGoto
onProcessEvent :unload
scene1 : onUnload
onProcessScene :load
onProcessEvent :load
scene2 : onLoad
onProcessEvent :init
scene2 : onInit
onProcessComplete :init
------
onProcessStart :init
onProcessEvent :goto
scene2 : onGoto
onProcessEvent :unload
scene2 : onUnload
[ERROR] 移動先のシーンが存在しません, 目的地 = /index/scene3
onProcessError :load</pre>
				<p>scene2 の onInit イベント内で中断実行を行う処理に変更してみる。</p>
				<pre class="brush: as3;">
onInit: function():void {
	this.addCommand(
		new Trace( &quot;scene2 : onInit&quot; ),
		function():void { this.interrupt(); },
		new Trace( &quot;中断実行後&quot; )
	);
}&lt;
</pre>
				<p>出力結果</p>
				<pre>onProcessStart :null
onProcessScene :load
onProcessEvent :load
onProcessEvent :descend
onProcessScene :load
onProcessEvent :load
scene1 : onLoad
onProcessEvent :init
scene1 : onInit
onProcessComplete :init
------
onProcessStart :init
onProcessEvent :goto
scene1 : onGoto
onProcessEvent :unload
scene1 : onUnload
onProcessScene :load
onProcessEvent :load
scene2 : onLoad
onProcessEvent :init
scene2 : onInit
中断実行後
onProcessInterrupt :init
------</pre>
				<p>interrupt メソッドに引数 true を渡して、強制中断実行に変更するとそのあとの処理は実行されず終了する。</p>
				<pre class="brush: as3;">
function():void { this.interrupt( true ); }
</pre>
				<ul>
				<li>onProcessStart で始まり正常終了した場合は onProcessComplete で終わる</li>
				<li>onProcessEvent と SceneObject イベントは対で実行され、onProcessEvent が常に先に実行される</li>
				<li>onProcessScene イベントはシーンに入る直前に実行される</li>
				<li>階層化されていれば通過シーン到達直前もすべて onProcessScene は実行される</li>
				</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.cuegraphix.com/?feed=rss2&amp;p=41</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ProcessEvent イベントフローについて(1)</title>
		<link>http://blog.cuegraphix.com/?p=35</link>
		<comments>http://blog.cuegraphix.com/?p=35#comments</comments>
		<pubDate>Thu, 27 Nov 2008 13:19:42 +0000</pubDate>
		<dc:creator>cue</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Progression]]></category>

		<guid isPermaLink="false">http://blog.cuegraphix.com/?p=35</guid>
		<description><![CDATA[				Sceneでのイベントフローはいろんな方が書いておられるので非常に勉強になりますが、ProcessEventについてはあまり見つけられなかったので、試してみました。
				Progressionインスタンスのイ [...]]]></description>
			<content:encoded><![CDATA[				<p>Sceneでのイベントフローはいろんな方が書いておられるので非常に勉強になりますが、ProcessEventについてはあまり見つけられなかったので、試してみました。</p>
				<p>Progressionインスタンスのイベントハンドラメソッドには</p>
				<ul>
				<li>onProcessStart</li>
				<li>onProcessScene</li>
				<li>onProcessComplete</li>
				<li>onProcessEvent</li>
				<li>onProcessError</li>
				<li>onProcessInterrupt</li>
				</ul>
				<p>が用意されています。<br />
				これがSceneObjectのonLoadやonInitからみてどんなタイミングで実行されるのかテストするために、次のようなIndexクラスを作成します。</p>
				<pre class="brush: as3;">
package
{
	import jp.progression.casts.CastDocument;
	import jp.progression.commands.Goto;
	import jp.progression.commands.Trace;
	import jp.progression.Progression;
	import jp.progression.scenes.SceneId;
	import jp.progression.scenes.SceneObject;

	public class Index extends CastDocument
	{
		public var prog:Progression;

		public function Index()
		{

		}

		protected override function _onInit():void
		{
			prog = new Progression( &quot;index&quot;, stage );

			prog.onProcessStart     = function() { trace( &quot;onProcessStart :&quot; + prog.eventType ); }
			prog.onProcessScene     = function() { trace( &quot;onProcessScene :&quot; + prog.eventType ); }
			prog.onProcessComplete  = function() { trace( &quot;onProcessComplete :&quot; + prog.eventType ); }
			prog.onProcessEvent     = function() { trace( &quot;onProcessEvent :&quot; + prog.eventType ); }
			prog.onProcessError     = function() { trace( &quot;onProcessError :&quot; + prog.eventType ); }
			prog.onProcessInterrupt = function() { trace( &quot;onProcessInterrupt :&quot; + prog.eventType ); }

			prog.root.addScene( new SceneObject( &quot;scene1&quot;, {
				onLoad: function():void {
					this.addCommand(
						new Trace( &quot;scene1 : onLoad&quot; )
					);
				},
				onInit: function():void {
					this.addCommand(
						new Trace( &quot;scene1 : onInit&quot; ),
						// scene2へ移動
						new Goto( new SceneId( &quot;/index/scene2&quot; ) )
					);
				},
				onGoto: function():void {
					this.addCommand(
						new Trace( &quot;scene1 : onGoto&quot; )
					);
				},
				onUnload: function():void {
					this.addCommand(
						new Trace( &quot;scene1 : onUnload&quot; )
					);
				}
			} ) );

			prog.root.addScene( new SceneObject( &quot;scene2&quot;, {
				onLoad: function():void {
					this.addCommand(
						new Trace( &quot;scene2 : onLoad&quot; )
					);
				},
				onInit: function():void {
					this.addCommand(
						new Trace( &quot;scene2 : onInit&quot; ),
						// 強制的にエラーを発生させる
						new Goto( new SceneId( &quot;/index/scene3&quot; ) )
					);
				},
				onGoto: function():void {
					this.addCommand(
						new Trace( &quot;scene2 : onGoto&quot; )
					);
				},
				onUnload: function():void {
					this.addCommand(
						new Trace( &quot;scene2 : onUnload&quot; )
					);
				}
			} ) );

			prog.goto( new SceneId( &quot;/index/scene1&quot; ) );
		}
	}
}
</pre>
				<p>出力結果</p>
				<pre>
onProcessStart :null
onProcessScene :load
onProcessEvent :load
onProcessEvent :descend
onProcessScene :load
onProcessEvent :load
scene1 : onLoad
onProcessEvent :init
scene1 : onInit
onProcessStart :init
onProcessEvent :goto
scene1 : onGoto
onProcessEvent :unload
scene1 : onUnload
onProcessScene :load
onProcessEvent :load
scene2 : onLoad
onProcessEvent :init
scene2 : onInit
onProcessStart :init
onProcessEvent :goto
scene2 : onGoto
onProcessEvent :unload
scene2 : onUnload
[ERROR] 移動先のシーンが存在しません, 目的地 = /index/scene3
onProcessError :load
onProcessInterrupt :load
onProcessInterrupt :load
</pre>
				<p>想像通りですが、SceneEvent が発生した際には onProcessEvent が実行されてから、シーンの各イベントハンドラが実行されるようです。<br />
				ただこの検証だとscene1に到達した瞬間のコマンドリスト内で強制的にscene2へGoToで飛ばしているので、中断実行であるonProcessInterrupt が入ると思っていたんですが、scene1 : onInitの次は onProcessStart :init が実行されてますね。<br />
				多分最後に２つ出力されているonProcessInterrupt のどちらかがこれに相当するのでしょうか？</p>
				<p>scene1 の onGoto 内に new Wait( 1000 ) のようにWaitコマンドを挟むと、onProcessInterrupt がその時点で出力されます。もしかすると中断実行も非同期処理になっているのかな？</p>
				<p><span id="more-35"></span><br />
				ない頭でGotoコマンドやSceneManagerを模索してみましたが、Gotoの場合実行中であれば中断実行してそのイベントを受け取りgoto処理を行うので、中断実行処理は確実に終了しており、addEventListenerの優先度の問題でした。<br />
				しかしこんな無茶な使い方をしても問題なく処理が終了するCommandクラスはすばらしい。<br />
				僕だったらゴミが残りまくりになっちゃうんだろうなぁ・・・</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cuegraphix.com/?feed=rss2&amp;p=35</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
