<?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>memo.393 &#187; progression</title>
	<atom:link href="http://memo.393.bz/archives/tag/progression/feed" rel="self" type="application/rss+xml" />
	<link>http://memo.393.bz</link>
	<description>個人的メモです。間違いなどありましたらご指摘ください。。。</description>
	<lastBuildDate>Sat, 31 Jul 2010 13:55:47 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>[AS]progression4 PreloadSWF()を実行するタイミングで「Error: 対象の CastPreloader は準備が完了していないか、すでにコンテンツが読み込まれています。」エラーに注意</title>
		<link>http://memo.393.bz/archives/902</link>
		<comments>http://memo.393.bz/archives/902#comments</comments>
		<pubDate>Fri, 29 Jan 2010 03:10:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[progression]]></category>
		<category><![CDATA[progression4]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=902</guid>
		<description><![CDATA[タイトルどおりの現象。
※PreloadSWF()については↓の記事がとてもわかりやすいです。
jp.ikekou.blog.Main：Progression 4.0.1 Public Beta 1.3 追加機能① Pr [...]]]></description>
			<content:encoded><![CDATA[<p>タイトルどおりの現象。</p>
<p>※PreloadSWF()については↓の記事がとてもわかりやすいです。<br />
<a href="http://ikekou.jp/blog/archives/292">jp.ikekou.blog.Main：Progression 4.0.1 Public Beta 1.3 追加機能① PreloadSWFクラス<br />
</a></p>
<p>で、これを観ながら上記ブログとは少し変えながら試してみたのですが、タイトルのエラー発生。<br />
変更した箇所はatCastLoadStart()の部分で、以下のソース</p>
<pre name="code" class="as">

override protected function atCastLoadStart():void {
	var loaderList:LoaderList = new LoaderList({
		onProgress:function():void{
			trace(this.percent)
		}
	});
	loaderList.addCommand(
        //new PreloadSWF()が遅い
		new LoadSound(new URLRequest(&quot;sound/sample.mp3&quot;))
		,new PreloadSWF()
	);
	loaderList.execute();
}
</pre>
<p>結論から言うと、new PreloadSWF()の書く順番が重要。<br />
↓このように書けばOK</p>
<pre name="code" class="as">

override protected function atCastLoadStart():void {
	var loaderList:LoaderList = new LoaderList({
		onProgress:function():void{
			trace(this.percent)
		}
	});
	loaderList.addCommand(
        //PreloadSWF()が早い
		new PreloadSWF()
		,new LoadSound(new URLRequest(&quot;sound/sample.mp3&quot;))
	);
	loaderList.execute();
}
</pre>
<p>ちなみに参考にしたブログでは、loaderListの処理をatCastLoadStart()のaddCommand()内で行い、そこに追加している。<br />
その際には、new PreloadSWF()の順番は影響はしないようす。</p>
<pre name="code" class="as">

override protected function atCastLoadStart():void {
	addCommand(
		function(){
			var loaderList:LoaderList = new LoaderList({
				onProgress:function():void{
					trace(this.percent)
				}
			});
			loaderList.addCommand(
				//new PreloadSWF()の位置は先でもエラーはでない
				,new PreloadSWF()
				new LoadSound(new URLRequest(&quot;sound/sample.mp3&quot;))
			);
			this.parent.addCommand(loaderList);
		}
	);
}
</pre>
<p>command周りの処理の順番がイマイチちゃんと理解していないから、泥臭く検証しないとわからないのよね。。。<br />
ガッツリ理解しとかないとな。。。</p>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/902/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AS]progression4 LoadCommand系のイベント（開始、終了、ローディング、エラー、中断)のまとめ</title>
		<link>http://memo.393.bz/archives/864</link>
		<comments>http://memo.393.bz/archives/864#comments</comments>
		<pubDate>Mon, 11 Jan 2010 08:30:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[progression]]></category>
		<category><![CDATA[progression4]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=864</guid>
		<description><![CDATA[progressionのコマンドを使ったときのイベント処理追加(開始、終了、ローディング、エラー、中断)のやり方
何種類か方法があるようなのでまとめ。
1.addEventLinstenerを使った一般的な書き方


p [...]]]></description>
			<content:encoded><![CDATA[<p>progressionのコマンドを使ったときのイベント処理追加(開始、終了、ローディング、エラー、中断)のやり方<br />
何種類か方法があるようなのでまとめ。</p>
<p>1.addEventLinstenerを使った一般的な書き方</p>
<pre name="code" class="as">

public function Test2() {
	//コマンドの定義
	var loadSound:LoadSound = new LoadSound(new URLRequest(&quot;./sound.mp3&quot;));
	//イベント処理の追加
	loadSound.addEventListener(ExecuteEvent.EXECUTE_START, startHandler);
	loadSound.addEventListener(ExecuteEvent.EXECUTE_COMPLETE, completeHandler);
	loadSound.addEventListener(ExecuteErrorEvent.EXECUTE_ERROR, errorHandler);
	loadSound.addEventListener(ProgressEvent.PROGRESS, progressHandler);
	//コマンドの実行
	loadSound.execute();
}
private function progressHandler(e:ProgressEvent):void {
	trace(&quot;e : &quot; + e);
}
private function errorHandler(e:ExecuteErrorEvent):void {
	trace(&quot;e : &quot; + e);
}
private function completeHandler(e:ExecuteEvent):void {
	trace(&quot;e : &quot; + e);
}
private function startHandler(e:ExecuteEvent):void {
	trace(&quot;e : &quot; + e);
}
</pre>
<p>2.addEventLisnerを使わない書き方<br />
※エラー発生時のイベントについては、onErrorとcatchErrorのどちらでも取れるけど、エラーの内容を参照するには、catchErrorを使っておいた方がいいみたい。<br />
(引数：errorでエラー内容が取れる)</p>
<pre name="code" class="as">

public function Test2() {
	//コマンドの定義
	var loadSound:LoadSound = new LoadSound(new URLRequest(&quot;./sound.mp3&quot;));
	//イベント処理の追加
	loadSound.onStart = function(){
		trace(&quot;onStart this : &quot; + this);
	};
	loadSound.onComplete = function(){
		trace(&quot;onComplete this : &quot; + this);
	};
	loadSound.onError = function(){
		trace(&quot;onError this : &quot; + this);
	};
	loadSound.catchError = function(target:Object, error:Error){
		trace(&quot;onError this : &quot; + target　,error);
                target.interrupt();
	};
	loadSound.onProgress = function(){
		trace(&quot;onProgress this : &quot; + this);
	};
	//コマンドの実行
	loadSound.execute();
}
</pre>
<p>3.addCommand内とかでコマンドのインスタンスを作れないときのやり方<br />
※エラー発生時のイベントについては、onErrorとcatchErrorのどちらでも取れるけど、エラーの内容を参照するには、catchErrorを使っておいた方がいいみたい。<br />
(引数：errorでエラー内容が取れる)</p>
<pre name="code" class="as">

public function Test2() {
	//コマンドの定義
	var slist:SerialList = new SerialList();
	slist.addCommand(
		new LoadSound(new URLRequest(&quot;./sound.mp3&quot;), null,
			{
				//読み込み開始時
				onStart:function():void{trace(&quot;start : &quot; + this)}
				//読み込み完了時
				,onComplete:function():void{trace(&quot;onComplete : &quot; + this)}
				//読み込み中
				,onProgress:function():void{ trace(&quot;onProgress : &quot;+this); }
				//読み込みエラー
				,onError:function():void{trace(&quot;error : &quot;+ this)}
				,catchError:function(target:Object, error:Error):void{trace(&quot;error : &quot;+ target,error)}
				//読み込み中断時
				,onInterrupt:function():void{trace(&quot;interrupt : &quot;+ this)}
			}
		)
	);

	//コマンドの実行
	slist.execute();
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/864/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AS]progression4 LoadCommand系でのエラー処理とかローディング処理とか中断処理とか</title>
		<link>http://memo.393.bz/archives/860</link>
		<comments>http://memo.393.bz/archives/860#comments</comments>
		<pubDate>Thu, 07 Jan 2010 05:26:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[progression]]></category>
		<category><![CDATA[progression4]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=860</guid>
		<description><![CDATA[メモ
initObjectでイベントを管理可能


slist.addCommand(
	new LoadSound(new URLRequest(&#34;./sound.mp3&#34;), null,
		{
 [...]]]></description>
			<content:encoded><![CDATA[<p>メモ<br />
initObjectでイベントを管理可能</p>
<pre name="code" class="as">

slist.addCommand(
	new LoadSound(new URLRequest(&quot;./sound.mp3&quot;), null,
		{
			//読み込み開始時
			onStart:function():void{trace(&quot;start&quot;)}
			//読み込み完了時
			,onComplete:function():void{trace(&quot;onComplete&quot;)}
			//読み込み中
			,onProgress:function():void{trace(&quot;progress&quot; + this.bytesLoaded);}
			//読み込みエラー
			,onError:function():void{trace(&quot;error&quot;)}
			//読み込み中断時
			,onInterrupt:function():void{trace(&quot;interrupt&quot;)}
		}
	)
);
slist.execute();
</pre>
<p>参考：<a href="http://level0.kayac.com/2009/10/progression4_commands.php">_level0.KAYAC:Progression4の新コマンドあれこれ</a></p>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/860/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AS]progression4 Load系コマンド(LoadURLとかLoadSoundとか)で読み込んだデータをインスタンス変数に参照させて取り扱うときの注意</title>
		<link>http://memo.393.bz/archives/854</link>
		<comments>http://memo.393.bz/archives/854#comments</comments>
		<pubDate>Thu, 07 Jan 2010 04:15:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[progression]]></category>
		<category><![CDATA[progression4]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=854</guid>
		<description><![CDATA[題名のまんまをprogression forumに質問したらすぐに回答を頂けたのでその補足メモ。
まずLoad系のコマンドで読み込んだデータを扱う際の定石は


//※要点を抜粋したコード
var _sound:Soun [...]]]></description>
			<content:encoded><![CDATA[<p>題名のまんまを<a href="http://forum.progression.jp/index.php?topic=266.0">progression forum</a>に質問したらすぐに回答を頂けたのでその補足メモ。</p>
<p>まずLoad系のコマンドで読み込んだデータを扱う際の定石は</p>
<pre name="code" class="as">

//※要点を抜粋したコード
var _sound:Sound;
addCommand(
    new LoadSound(new URLRequest(&quot;./sound.mp3&quot;))
    ,function(){
        _sound = this.latestData;
        trace(_sound)//出力：[Object Sound]
    }
)
</pre>
<p>と思ってましたが、progression4からは、getResourceByIdというものを使った方が便利とのこと。<br />
↑のコードを書き換えると</p>
<pre name="code" class="as">

//※要点を抜粋したコード
var _sound:Sound;
addCommand(
    new LoadSound(new URLRequest(&quot;./sound.mp3&quot;))
    ,function(){
        _sound = getResourceById( &quot;./sound.mp3&quot; ).data;
        trace(_sound)//出力：[Object Sound]
    }
)
</pre>
<p>getResourceById()の便利なところは、一度読み込めば、読み込んだデータがどこからでも参照できるというところみたい。<br />
getResourceById( &#8220;./sound.mp3&#8243; )と書くことでstaticは変数みたいな扱いができるということかな。</p>
<p>↓ざっくり書くとこんな感じ。</p>
<pre name="code" class="as">

//※要点を抜粋したコード
var _sound:Sound;
addCommand(
    new LoadSound(new URLRequest(&quot;./sound.mp3&quot;))
    ,function(){
        _sound = getResourceById( &quot;./sound.mp3&quot; ).data;
        trace(_sound)//出力：[Object Sound];
        new Test();
    }
)
//
class Test {
    function Test(){
        trace(getResourceById( &quot;./sound.mp3&quot; ).data)//出力：[object Sound]
    }
}
</pre>
<p>あとgetResourceByGroupというものもあって同様な扱いができるそうです。<br />
上記の検証で参考になった記事<br />
参考：<a href="http://level0.kayac.com/2009/10/progression4_resource.php">_level0.KAYAC:Progression4の新機能Resourceを試してみる<br />
</a></p>
<p>でタイトルの本題については、forumに書いたけど↓ではSerialList内のtraceはnullになり</p>
<pre name="code" class="as">

addCommand(
    new LoadSound(new URLRequest(&quot;./sound.mp3&quot;))
    ,function(){
        _sound = getResourceById( &quot;./sound.mp3&quot; ).data;
        trace(_sound)//出力：[Object Sound];
        new Test();
    }
    ,new SerialList(null
        ,new Trace(_sound)//出力：null
    )
)
</pre>
<p>SerialListをfinctionでくくると参照がとれました。</p>
<pre name="code" class="as">

addCommand(
    new LoadSound(new URLRequest(&quot;./sound.mp3&quot;))
    ,function(){
        _sound = getResourceById( &quot;./sound.mp3&quot; ).data;
        trace(_sound)//出力：[Object Sound];
        new Test();
    }
    ,function(){
        new SerialList(null
            ,new Trace(_sound)//出力：[Object:Sound]
        ).execute()
    }
)
</pre>
<p>最後にこれらの集大成的なコード(ドキュメントクラス)<br />
（functionで括らないSerialList内でのTraceでnullになるのは、イマイチ理解できてないけど)</p>
<pre name="code" class="as">

package  {
	import flash.display.Sprite;
	import flash.media.Sound;
	import flash.net.URLRequest;
	import jp.progression.commands.media.DoSound;
	import jp.progression.commands.display.*;
	import jp.progression.commands.lists.*;
	import jp.progression.commands.net.*;
	import jp.progression.commands.tweens.*;
	import jp.progression.commands.*;
	import jp.progression.data.getResourceById;
	/**
	 * @author 393
	 */
	public class Test extends Sprite{
		private var _sound:Sound;
		private var number:int = 0;

		public function Test() {
			var slist:SerialList = new SerialList();
			slist.addCommand(
				new LoadSound(new URLRequest(&quot;./sound.mp3&quot;))
				,function(){
					_sound = getResourceById( &quot;./sound.mp3&quot; ).data;
					trace(&quot;_sound : &quot; + _sound);
					new DoSound(_sound).execute();
					number = 100;
				}
				,new SerialList(null
					,new Trace(&quot;SerialList number : &quot; + number)//出力：0
					,new Trace(&quot;SerialList sound : &quot; +_sound)//出力：null
				)
				,new Func(next)
			);
			slist.execute();
		}
		private function next():void{
			trace(&quot;number : &quot; + number);//出力：100
			trace(&quot;nextの_sound : &quot; + _sound);//出力： [object Sound]
			new Test2()
		}
	}
}
import jp.progression.data.getResourceById;

class Test2{
	public function Test2() {
		trace(&quot;Test2のgetResourceById( \&quot;./sound.mp3\&quot; ).data : &quot; + getResourceById( &quot;./sound.mp3&quot; ).data);
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/854/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AS]progression4 managerインスタンスの参照でちょっとはまった</title>
		<link>http://memo.393.bz/archives/848</link>
		<comments>http://memo.393.bz/archives/848#comments</comments>
		<pubDate>Mon, 28 Dec 2009 07:21:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[progression]]></category>
		<category><![CDATA[progression4]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=848</guid>
		<description><![CDATA[progression4からは、Progressionクラスを参照できるプロパティがmanagerになりました。
(3はprogressionだった)
SceneObjectとかCastSpriteとかが持ってるプロパテ [...]]]></description>
			<content:encoded><![CDATA[<p>progression4からは、Progressionクラスを参照できるプロパティがmanagerになりました。<br />
(3はprogressionだった)<br />
SceneObjectとかCastSpriteとかが持ってるプロパティなので簡単に参照できます。</p>
<p>んが、ちょっとはまったのでmemo。</p>
<p>SceneObject（を継承したカスタムクラス）の場合、そのSceneObjectがaddSceneされてない状態では、managerはnullとなる。<br />
つまりSceneObjectのコンストラクタに<br />
trace(manager)<br />
としてもnullが返ってくるだけ。<br />
addSceneされたあとなら、Progressionインスタンスを返してくれる。</p>
<p>CastSprite（を継承したカスタムクラス）の場合は、自身の親が普通のspriteとかMovieClipの状態では参照できない。<br />
親はCastSpriteとかCastMovieClipとかprogression独自のDisplayObjectContainerでないとだめ。</p>
<pre name="code" class="as">

//nullの例
var sp:Sprite = new Sprite();
container.addChild(sp) //containerはprogressionの持ってるプロパティ。(progression的なstage)
var csp:CastSprite = new CastSprite();
sp.addChild(csp);
trace(csp.manager);//出力：null
//nullじゃない例
var sp:CastSprite = new CastSprite();
container.addChild(sp) //containerはprogressionの持ってるプロパティ。(progression的なstage)
var csp:CastSprite = new CastSprite();
sp.addChild(csp);
trace(csp.manager);//出力：[Progression id=&quot;index&quot;]
</pre>
<p>というようなことが上手くまとめられてる記事もありました。<br />
ありがたいことです。</p>
<p>参考：<a href="http://blog.izm-design.com/2009/10/10-135045.php">Fountain:Flash初心者がProgression 4 publicBeta1.1を始めたメモ</a></p>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/848/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AS]progression4 preloaderの表示オブジェクトコンテナー foreground/background</title>
		<link>http://memo.393.bz/archives/842</link>
		<comments>http://memo.393.bz/archives/842#comments</comments>
		<pubDate>Wed, 02 Dec 2009 16:19:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[progression]]></category>
		<category><![CDATA[progression4]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=842</guid>
		<description><![CDATA[preloader.fla(プリローダー)に表示オブジェクトを追加する際は、foregroundもしくはbackgroundにaddChild()する。
CastPreloader.foreground
CastPrel [...]]]></description>
			<content:encoded><![CDATA[<p>preloader.fla(プリローダー)に表示オブジェクトを追加する際は、foregroundもしくはbackgroundにaddChild()する。<br />
CastPreloader.foreground<br />
CastPreloader.background</p>
<p>foregroundは、メインコンテンツ(index.swf)よりも上の階層。<br />
backgroundは、メインコンテンツ(index.swf)よりも下の階層</p>
<p>つまりコンテンツの背景として表示したいものはbackgroundに、<br />
常に表示させたいものは、foregroundに、addChild()</p>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/842/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AS]progression DoTweenerをinterrupt()するのは大変かも。</title>
		<link>http://memo.393.bz/archives/472</link>
		<comments>http://memo.393.bz/archives/472#comments</comments>
		<pubDate>Fri, 03 Apr 2009 02:12:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[progression]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=472</guid>
		<description><![CDATA[SerialListとかのコマンドリスト内にもかけて、とっても便利なDoTweener。
ただし、そのコマンドリストを停止させるときはちょっと注意が必要かも。
具体的には、DoTweenerの含まれているコマンドリストを [...]]]></description>
			<content:encoded><![CDATA[<p>SerialListとかのコマンドリスト内にもかけて、とっても便利なDoTweener。<br />
ただし、そのコマンドリストを停止させるときはちょっと注意が必要かも。<br />
具体的には、DoTweenerの含まれているコマンドリストをinterrupt()するとDoTweenerでエラーが吐かれます。<br />
一応、その場で止まってるみたいですが、内部を読めない素人にはエラーという言葉が怖い・・・</p>
<p>というわけで・・・<br />
interrupt()するコマンドにはTweenerを利用するという方法に逃げました。<br />
これだとinterrupt()してもとりあえずエラーは表示されません。<br />
（もちろん内部的に何かエラーが発生してるかはわからんですが・・・）</p>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/472/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[AS]progression Sceneの_onLoad中にコマンドをinterrupt()すると良くない？</title>
		<link>http://memo.393.bz/archives/467</link>
		<comments>http://memo.393.bz/archives/467#comments</comments>
		<pubDate>Fri, 03 Apr 2009 02:00:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[progression]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=467</guid>
		<description><![CDATA[ちょっとはまったのでメモ
progressionのコマンド機能を使ってオープニングムービー付きサイトを作りました。
で、当然ムービーはスキップできるようにしたいな、と。
コマンドを停止させるにはinterupt()という [...]]]></description>
			<content:encoded><![CDATA[<p>ちょっとはまったのでメモ</p>
<p>progressionのコマンド機能を使ってオープニングムービー付きサイトを作りました。<br />
で、当然ムービーはスキップできるようにしたいな、と。</p>
<p>コマンドを停止させるにはinterupt()という命令でOK。<br />
ただ停止したいコマンドを指定せねばなので、_onLoad()内のaddCommand内に書いてたコマンドを、別でSerialListを作ってそこにaddCommand、それを_onLoad()のaddCommandにinsertCommand()する感じにしました。<br />
↓だいたいこんなかんじ<br />
（indexSceneに書いたってことで話を進めます）</p>
<pre name="code" class="as">

protected override function _onLoad():void {
	var sList:SerialList = new SerialList();
	sList.addCommand(
		new Trace(&quot;insertCommand sList&quot;)
	)
	addCommand(
		insertCommand(sList)
	);
}
</pre>
<p>で、skipボタン用意して押したら、sList.interrupt()を実行して、その後はスキップ後の処理を実行するような感じに。</p>
<p>結果としては、止まった。<br />
でも、通常_onLoad（）後に行われる_onInit（）は実行されず。<br />
強制ストップだからそういうもんなのかな。<br />
で、ここで問題が。<br />
indexSceneから移動しても、_onGotoイベント、_onUnLoadイベントが発行されないご様子。<br />
_onInit（）が実行されてないとだめなのか？と思ったので・・・<br />
スキップしたいコマンドをonInit内に記述して、onInit（）のコマンドをinterruptしてみると、</p>
<pre name="code" class="as">

//IndexSceneoの_onInitに書いてます。
protected override function _onInit():void {
	var sList:SerialList = new SerialList();
	sList.addCommand(
		new Trace(&quot;insertCommand sList&quot;)
	)
	addCommand(
		insertCommand(sList)
	);
}
</pre>
<p>こんどはシーン移動の際に_onGotoイベントが問題なく発行されました。</p>
<p>_onLoad中でのコマンドのinterrupt（）には注意が必要かもね。</p>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/467/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AS]progression Progressionインスタンスの取得方法</title>
		<link>http://memo.393.bz/archives/459</link>
		<comments>http://memo.393.bz/archives/459#comments</comments>
		<pubDate>Fri, 03 Apr 2009 01:30:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[progression]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=459</guid>
		<description><![CDATA[下の記事でCastSpriteからprogressionインスタンスを取得するのに、indexSceneを取得して、そのprogressionプロパティから取得しましたが、もっと簡単にできました。


trace(&#038;qu [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://memo.393.bz/actionscript/444.html">下の記事</a>でCastSpriteからprogressionインスタンスを取得するのに、indexSceneを取得して、そのprogressionプロパティから取得しましたが、もっと簡単にできました。</p>
<pre name="code" class="as">

trace(&quot;プログレッションid&quot; + getProgressionById(&quot;index&quot;))
</pre>
<p>&#8220;index&#8221;というidは、index.asのここで定義されてます。</p>
<pre name="code" class="as">

// Progression インスタンスを作成します。
prog = new Progression( &quot;index&quot;, stage, IndexScene );
</pre>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/459/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AS]progression コマンドの順番についてのメモ</title>
		<link>http://memo.393.bz/archives/451</link>
		<comments>http://memo.393.bz/archives/451#comments</comments>
		<pubDate>Fri, 03 Apr 2009 01:08:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[progression]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=451</guid>
		<description><![CDATA[ちょっと混乱したので現象をメモしておこう。
まずはソースを、
indexSceneの_onInitに書いてます。


protected override function _onInit():void {
	// 実行 [...]]]></description>
			<content:encoded><![CDATA[<p>ちょっと混乱したので現象をメモしておこう。</p>
<p>まずはソースを、<br />
indexSceneの_onInitに書いてます。</p>
<pre name="code" class="as">

protected override function _onInit():void {
	// 実行したいコマンドを登録する
	var sList0:SerialList = new SerialList();
	sList0.addCommand(
		function() {
			trace(&quot;sList0&quot;);
		}
	);
	var sList1:SerialList = new SerialList();
	sList1.addCommand(
	function() {
			trace(&quot;sList1&quot;);
	}
	);
	var sList2:SerialList = new SerialList();
	sList2.addCommand(
	function() {
			trace(&quot;sList2&quot;);
	}
	);
	var sList3:SerialList = new SerialList();
	sList3.addCommand(
	function() {
			trace(&quot;sList3&quot;);
	}
	);
	var sList4:SerialList = new SerialList();
	sList4.addCommand(
	function() {
			trace(&quot;sList4&quot;);
	}
	);
	var sList5:SerialList = new SerialList();
	sList5.addCommand(
	function() {
			trace(&quot;sList5&quot;);
	}
	);

	//
	addCommand(
		function() {
			trace(&quot;defolt addCommand Start&quot;);
		},
		addCommand(sList0),
		function() {
			insertCommand(sList2);
		},
		addCommand(sList1),
		function() {
			trace(&quot;defolt addCommand End&quot;);
		},
		insertCommand(sList4)
	);
	//
	insertCommand(sList5);
	insertCommand(sList3);

}
</pre>
<p>で、traceされる結果は、<br />
sList3<br />
sList5<br />
sList4<br />
sList0<br />
sList1<br />
defolt addCommand Start<br />
sList2<br />
defolt addCommand End</p>
<p>こんな順番。</p>
<p>気づいた点は、<br />
_onInit()内に、insertCommand()をいくらでも書けるってこと。<br />
そのinsertCommandはexecute()不要で、順番的には、addCommandよりも先になる。<br />
さらに一番最後にinsertCommandしたものが実質一番最初（addCommandよりも先）に実行される、みたいね。</p>
<p>では、addCommand内でinsertCommandした場合はどうなるか。<br />
これは少し注意が必要ね。<br />
直接、insertCommandした場合は、addCommand内で一番最初に実行される。<br />
でもfunction内でinsertCommandした場合は、既存のaddCommandの順番内に純粋に挿入される感じ。</p>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/451/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
