<?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>GRAM &#124; グラム &#187; progression</title>
	<atom:link href="http://www.brooklyn.jp/blog/category/actionscript/progression/feed" rel="self" type="application/rss+xml" />
	<link>http://www.brooklyn.jp/blog</link>
	<description>Build Inter-Communication through Designing</description>
	<lastBuildDate>Mon, 20 Jun 2011 05:45:39 +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>atSceneDescend で到着シーンを取得</title>
		<link>http://www.brooklyn.jp/blog/actionscript/atscenedescend-%e3%81%a7%e5%88%b0%e7%9d%80%e3%82%b7%e3%83%bc%e3%83%b3%e3%82%92%e5%8f%96%e5%be%97.html</link>
		<comments>http://www.brooklyn.jp/blog/actionscript/atscenedescend-%e3%81%a7%e5%88%b0%e7%9d%80%e3%82%b7%e3%83%bc%e3%83%b3%e3%82%92%e5%8f%96%e5%be%97.html#comments</comments>
		<pubDate>Mon, 09 May 2011 12:36:39 +0000</pubDate>
		<dc:creator>jam</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[progression]]></category>

		<guid isPermaLink="false">http://www.brooklyn.jp/blog/?p=839</guid>
		<description><![CDATA[久々にウェブサイトのオーサリングで、Progression 4を使ったら、みごとはまる。
グローバルメニューなどで、シーン移動時にアクションがある場合、直リンでアクセスされたときにメニューが全然動かない状態になった。
そんなときの Progression 4 での到着シーンのID取得方法。
[ IndexScene.as ]

// 下記を追加する
/**
 * シーン移動時に目的地がシーンオブジェクトの子階層であり、かつ出発地ではない場合に、自身が移動を中継した瞬間に送出されます。
 * このイベント処理の実行中には、ExecutorObject を使用した非同期処理が行えます。
 */
override protected function atSceneDescend():void {
	if( manager.destinedSceneId.toString() == "/index/scene_a" ) {
		// scene_a の場合の処理
	} else if( manager.destinedSceneId.toString() == "/index/scene_b" ) {
		// scene_b の場合の処理
	} else if( manager.destinedSceneId.toString() == "/index/scene_c" ) {
		// scene_c の場合の処理
	}

	addCommand(
		// なにか処理する場合はここに記述
	);
}


っと、atSceneDescend() でいきなり子シーンにアクセルするときのイベントを取得できるので、
このときに、manager.destinedSceneIdでシーンのnameで設定しておいたString型がとれる。
それに応じて処理を変えていく。
SceneObjectクラスにそーゆーのがあるかと思ってずっと探してたら、Progressionクラスにありました。なるほど、管理してるクラスに任せるのは理にかなってる、さすがです。
&#8212;
[追記]
間違えました（と言うか、付け忘れてました。。）
manager.destinedSceneId は SceneId が戻り値なので、String型じゃありません。
toString() を加えるか、String型でキャストしないと等価演算子がまともに機能しませんのです。
]]></description>
			<content:encoded><![CDATA[<p>久々にウェブサイトのオーサリングで、Progression 4を使ったら、みごとはまる。</p>
<p>グローバルメニューなどで、シーン移動時にアクションがある場合、直リンでアクセスされたときにメニューが全然動かない状態になった。<br />
そんなときの Progression 4 での到着シーンのID取得方法。</p>
<p>[ IndexScene.as ]</p>
<blockquote><pre>
// 下記を追加する
/**
 * シーン移動時に目的地がシーンオブジェクトの子階層であり、かつ出発地ではない場合に、自身が移動を中継した瞬間に送出されます。
 * このイベント処理の実行中には、ExecutorObject を使用した非同期処理が行えます。
 */
override protected function atSceneDescend():void {
	if( manager.destinedSceneId.toString() == "/index/scene_a" ) {
		// scene_a の場合の処理
	} else if( manager.destinedSceneId.toString() == "/index/scene_b" ) {
		// scene_b の場合の処理
	} else if( manager.destinedSceneId.toString() == "/index/scene_c" ) {
		// scene_c の場合の処理
	}

	addCommand(
		// なにか処理する場合はここに記述
	);
}
</pre>
</blockquote>
<p>っと、atSceneDescend() でいきなり子シーンにアクセルするときのイベントを取得できるので、<br />
このときに、manager.destinedSceneIdでシーンのnameで設定しておいたString型がとれる。<br />
それに応じて処理を変えていく。</p>
<p>SceneObjectクラスにそーゆーのがあるかと思ってずっと探してたら、Progressionクラスにありました。なるほど、管理してるクラスに任せるのは理にかなってる、さすがです。</p>
<p>&#8212;<br />
[追記]<br />
間違えました（と言うか、付け忘れてました。。）<br />
manager.destinedSceneId は SceneId が戻り値なので、String型じゃありません。<br />
toString() を加えるか、String型でキャストしないと等価演算子がまともに機能しませんのです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brooklyn.jp/blog/actionscript/atscenedescend-%e3%81%a7%e5%88%b0%e7%9d%80%e3%82%b7%e3%83%bc%e3%83%b3%e3%82%92%e5%8f%96%e5%be%97.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Progression と Firefox 3.6</title>
		<link>http://www.brooklyn.jp/blog/actionscript/progression/progression-%e3%81%a8-firefox-3-6.html</link>
		<comments>http://www.brooklyn.jp/blog/actionscript/progression/progression-%e3%81%a8-firefox-3-6.html#comments</comments>
		<pubDate>Wed, 24 Feb 2010 03:02:26 +0000</pubDate>
		<dc:creator>jam</dc:creator>
				<category><![CDATA[progression]]></category>

		<guid isPermaLink="false">http://www.brooklyn.jp/blog/?p=694</guid>
		<description><![CDATA[Progression 3.1.82 を使っていて、Firefox の今のところ一番新しい Firefox 3.6 で確認したら、謎のスクロールバーが出現。。。
スクロールする範囲もないので、困ったもんですなっと。
とりあえず、progression.css に下記を追加で回避。


#flashcontent {
	position    :absolute;
	left        :50%;
	top         :50%;
	width       :740px;
	height      :300px;
	line-height	:0;
	margin-left :-370px;
	margin-top  :-150px;
	overflow	:hidden;	
	}


flash の全画面表示でも今のところ問題無しなので、多分大丈夫かと。
]]></description>
			<content:encoded><![CDATA[<p>Progression 3.1.82 を使っていて、Firefox の今のところ一番新しい Firefox 3.6 で確認したら、謎のスクロールバーが出現。。。</p>
<p>スクロールする範囲もないので、困ったもんですなっと。</p>
<p>とりあえず、progression.css に下記を追加で回避。</p>
<blockquote>
<pre>
#flashcontent {
	position    :absolute;
	left        :50%;
	top         :50%;
	width       :740px;
	height      :300px;
	line-height	:0;
	margin-left :-370px;
	margin-top  :-150px;
	overflow	:hidden;	<!-- これ -->
	}
</pre>
</blockquote>
<p>flash の全画面表示でも今のところ問題無しなので、多分大丈夫かと。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brooklyn.jp/blog/actionscript/progression/progression-%e3%81%a8-firefox-3-6.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Progression でクロスフェード</title>
		<link>http://www.brooklyn.jp/blog/actionscript/progression-%e3%81%a7%e3%82%af%e3%83%ad%e3%82%b9%e3%83%95%e3%82%a7%e3%83%bc%e3%83%89.html</link>
		<comments>http://www.brooklyn.jp/blog/actionscript/progression-%e3%81%a7%e3%82%af%e3%83%ad%e3%82%b9%e3%83%95%e3%82%a7%e3%83%bc%e3%83%89.html#comments</comments>
		<pubDate>Tue, 01 Dec 2009 15:47:47 +0000</pubDate>
		<dc:creator>jam</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[progression]]></category>

		<guid isPermaLink="false">http://www.brooklyn.jp/blog/?p=666</guid>
		<description><![CDATA[久々に Progression 使ってサイト構築したときの Tips
Progression でのシーンの移動の際、通常は _onGoto() と _onInit() 内にある addCommand() の２つの処理を待つのですが、
どーしてもクロスフェードが必要になった場合の処理。
SerialList を static な変数として生成しておいて、都度アクセスするのが一番効率良いやり方らしいス。
(自分確認ではなく開発者本人がおっしゃってたので、大丈夫かと。)
やり方はいたって簡単。
IndexScene と ChildScene の _onInit と _onGoto の addCommand() での処理で静的な変数として生成した SerialList を呼ぶ。
(注：そのままだと addCommand は SerialList のためクロスフェードしないので、ParallelList にしておく必要アリ)
-IndexScene.as



public static var customCommands:SerialList = new SerialList();	// ← これ！

public var page:IndexPage;

/**
* コンストラクタ
*/
public function IndexScene() {
	addScene( new ChildScene( "child" ) );

	page = new IndexPage();
	page.alpha = 0;
}

/**
* シーンオブジェクトが目的地だった場合に、到達した瞬間に送出されます。
* [...]]]></description>
			<content:encoded><![CDATA[<p>久々に Progression 使ってサイト構築したときの Tips</p>
<p>Progression でのシーンの移動の際、通常は _onGoto() と _onInit() 内にある addCommand() の２つの処理を待つのですが、<br />
どーしてもクロスフェードが必要になった場合の処理。<br />
SerialList を static な変数として生成しておいて、都度アクセスするのが一番効率良いやり方らしいス。<br />
(自分確認ではなく開発者本人がおっしゃってたので、大丈夫かと。)</p>
<p>やり方はいたって簡単。<br />
IndexScene と ChildScene の _onInit と _onGoto の addCommand() での処理で静的な変数として生成した SerialList を呼ぶ。<br />
(注：そのままだと addCommand は SerialList のためクロスフェードしないので、ParallelList にしておく必要アリ)</p>
<p>-IndexScene.as</p>
<blockquote>
<pre>

public static var customCommands:SerialList = new SerialList();	// ← これ！

public var page:IndexPage;

/**
* コンストラクタ
*/
public function IndexScene() {
	addScene( new ChildScene( "child" ) );

	page = new IndexPage();
	page.alpha = 0;
}

/**
* シーンオブジェクトが目的地だった場合に、到達した瞬間に送出されます。
* このイベント処理の実行中には、addCommand() メソッド、及び insertCommand() メソッドによるコマンドの同期処理が行えます。
*/
protected override function _onInit():void {
	// 実行したいコマンドを登録します。
	addCommand(
		new ParallelList( null,
			IndexScene.customCommands,	// ← ここで実行。初回は中身が空なので何も起きませぬ。
			new SerialList( null,
				new AddChild( progression.container, page ),
				new DoTweener( page, { alpha:1, time:2 } )
			)
		),
		function():void {
			IndexScene.customCommands.clearCommand( true );		// ← クロスフェード後に中身をクリアしとく
		}
	);
}

/**
* シーンオブジェクトが出発地だった場合に、移動を開始した瞬間に送出されます。
* このイベント処理の実行中には、addCommand() メソッド、及び insertCommand() メソッドによるコマンドの同期処理が行えます。
*/
protected override function _onGoto():void {
	IndexScene.customCommands.addCommand(	// ← ここでは RemoveChild しないで、customCommands に登録だけしておく
		new DoTweener( page, { alpha:0, time:2 } ),
		new RemoveChild( progression.container, page )
	);

	// 実行したいコマンドを登録します。
	addCommand(
	);
}
</pre>
</blockquote>
<p>下階層のシーンでも基本的に処理は一緒。</p>
<p>-ChildScene.as</p>
<blockquote>
<pre>
/**
* シーンオブジェクトが目的地だった場合に、到達した瞬間に送出されます。
* このイベント処理の実行中には、addCommand() メソッド、及び insertCommand() メソッドによるコマンドの同期処理が行えます。
*/
protected override function _onInit():void {
	// 実行したいコマンドを登録します。
	addCommand(
		new ParallelList( null,
			IndexScene.customCommands,	// ← ここで実行。IndexScene の _onGoto() で設定したコマンドが同時に実行されます。
			new SerialList( null,
				new AddChild( progression.container, page ),
				new DoTweener( page, { alpha:1, time:2 } )
			)
		),
		function():void {
			IndexScene.customCommands.clearCommand( true );		// ← クロスフェード後に中身をちゃんとクリアしとく
		}
	);
}

/**
* シーンオブジェクトが出発地だった場合に、移動を開始した瞬間に送出されます。
* このイベント処理の実行中には、addCommand() メソッド、及び insertCommand() メソッドによるコマンドの同期処理が行えます。
*/
protected override function _onGoto():void {
	IndexScene.customCommands.addCommand(	// ← このページの処理を登録
		new DoTweener( page, { alpha:0, time:2 } ),
		new RemoveChild( progression.container, page )
	);

	// 実行したいコマンドを登録します。
	addCommand(
	);
}
</pre>
</blockquote>
<p>シーンの _onGoto() では、コマンドの登録だけして、<br />
実際の処理は、遷移先のシーンの _onInit(() で実行させるって行程です。<br />
この処理を全部のシーンで実行させるようにしておけば、全部のページ遷移でクロスフェードになります。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brooklyn.jp/blog/actionscript/progression-%e3%81%a7%e3%82%af%e3%83%ad%e3%82%b9%e3%83%95%e3%82%a7%e3%83%bc%e3%83%89.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>loadChild() で外部swf をロード</title>
		<link>http://www.brooklyn.jp/blog/actionscript/loadchild-%e3%81%a7%e5%a4%96%e9%83%a8swf-%e3%82%92%e3%83%ad%e3%83%bc%e3%83%89.html</link>
		<comments>http://www.brooklyn.jp/blog/actionscript/loadchild-%e3%81%a7%e5%a4%96%e9%83%a8swf-%e3%82%92%e3%83%ad%e3%83%bc%e3%83%89.html#comments</comments>
		<pubDate>Thu, 27 Nov 2008 10:40:09 +0000</pubDate>
		<dc:creator>jam</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[progression]]></category>

		<guid isPermaLink="false">http://www.brooklyn.jp/blog/?p=80</guid>
		<description><![CDATA[するときの場合です。
基本的には AS3 の Loader() の処理と一緒っぽいです。
多分です。
例えば、子シーンで外部swf をロードする場合 : SceneObject を extends したモノ


private var sp:Sprite;
private var com:LoadChild;
private var isLoading:Boolean = false;
private var childMovieClip:MovieClip;

public function ChildScene( name:String = null, initObject:Object = null ) {
 	super( name, initObject );

	// シーン名 &#124; タイトルの設定
	name = "childscene";
	title = "HERE IS CHILD SCENE";
}

protected override function _onLoad():void {
	// 実行したいコマンドを登録します。
	sp = new Sprite();

	var req:URLRequest = [...]]]></description>
			<content:encoded><![CDATA[<p>するときの場合です。</p>
<p>基本的には AS3 の Loader() の処理と一緒っぽいです。<br />
多分です。</p>
<p>例えば、子シーンで外部swf をロードする場合 : SceneObject を extends したモノ</p>
<blockquote>
<pre>
private var sp:Sprite;
private var com:LoadChild;
private var isLoading:Boolean = false;
private var childMovieClip:MovieClip;

public function ChildScene( name:String = null, initObject:Object = null ) {
 	super( name, initObject );

	// シーン名 | タイトルの設定
	name = "childscene";
	title = "HERE IS CHILD SCENE";
}

protected override function _onLoad():void {
	// 実行したいコマンドを登録します。
	sp = new Sprite();

	var req:URLRequest = new URLRequest( "contents/swf/child.swf" );
	com = new LoadChild( sp, req );

	com.loader.onCastLoadStart = function():void {
		isLoading = true;
		this.addCommand(
			// ローディングの開始アニメーションとか
		)
	};
	com.loader.onCastLoadComplete = function():void {
		isLoading = false;
		childMovieClip = this.content;	// これで、子swf にアクセスさせて、その function を読んだり出来るようにしておきます。
		this.addCommand(
			new AddChild( progression.container, sp ),
			// ローディングの終了アニメーションとか
		);
	};
	com.addEventListener( ProgressEvent.PROGRESS, onProgress );
	// com.loader.contentLoaderInfo.addEventListener でも一緒です。
	com.execute();
}

private function onProgress( e:ProgressEvent ):void {
	var loaded:Number = com.loader.contentLoaderInfo.bytesLoaded;
	var total:Number = com.loader.contentLoaderInfo.bytesTotal;
	var percent:Number = (loaded / total);
	trace( "loading = " + percent );	// ローディング状況を trace() する
};
</pre>
</blockquote>
<p>あとは、 childMovieClip に命令するとか、child.swf のタイムラインにアニメーション作っておくとかで<br />
大丈夫ではないでしょうか。<br />
もっといい方法がある気がしてならない。</p>
<p>そして、殴り書きのメモみたいに簡単でスイマセン。<br />
落ち着いたら、ちゃんと。。。出来たらいいな。。。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brooklyn.jp/blog/actionscript/loadchild-%e3%81%a7%e5%a4%96%e9%83%a8swf-%e3%82%92%e3%83%ad%e3%83%bc%e3%83%89.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>初 progression サイト</title>
		<link>http://www.brooklyn.jp/blog/akari/%e5%88%9d-progression-%e3%82%b5%e3%82%a4%e3%83%88.html</link>
		<comments>http://www.brooklyn.jp/blog/akari/%e5%88%9d-progression-%e3%82%b5%e3%82%a4%e3%83%88.html#comments</comments>
		<pubDate>Wed, 26 Nov 2008 09:31:51 +0000</pubDate>
		<dc:creator>jam</dc:creator>
				<category><![CDATA[akari]]></category>
		<category><![CDATA[progression]]></category>

		<guid isPermaLink="false">http://www.brooklyn.jp/blog/?p=79</guid>
		<description><![CDATA[が昨日公開されました。
トンでもスケジュールな案件だったので、
一球入魂するには progression しかないと思い、
思い切って使用させて頂きました。
遷移の複雑な部分を任せられる上に、各ページやその他の部分を作り込む時間がないなーっと思ってましたが、意外とあったりして、ホントに作業が楽になりました。
progression のホームページのキャッチコピーそのままです。
遥か昔の偉い人が、「神は死んだ」って言ってますが、ここに居ました。
ありがとうございました。
お惣菜屋さんのウェブサイトで、どれもこれも美味しそうなのばかりで、夜中の作業が泣きそうでした。
-
RF1 &#8211; X&#8217;mas Special Site
Client : Rock Field Co., Ltd.
Agency : amana inc.
Design : Rock Field Co., Ltd.
Flash Develop : Akari, Inc.
-
]]></description>
			<content:encoded><![CDATA[<p>が昨日公開されました。</p>
<p>トンでもスケジュールな案件だったので、<br />
一球入魂するには progression しかないと思い、<br />
思い切って使用させて頂きました。</p>
<p>遷移の複雑な部分を任せられる上に、各ページやその他の部分を作り込む時間がないなーっと思ってましたが、意外とあったりして、ホントに作業が楽になりました。<br />
progression のホームページのキャッチコピーそのままです。</p>
<p>遥か昔の偉い人が、「神は死んだ」って言ってますが、ここに居ました。<br />
ありがとうございました。</p>
<p>お惣菜屋さんのウェブサイトで、どれもこれも美味しそうなのばかりで、夜中の作業が泣きそうでした。</p>
<p>-<br />
<a href="http://www.rf-one.com/" target="_blank">RF1 &#8211; X&#8217;mas Special Site</a></p>
<p>Client : Rock Field Co., Ltd.<br />
Agency : amana inc.<br />
Design : Rock Field Co., Ltd.<br />
Flash Develop : Akari, Inc.<br />
-</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brooklyn.jp/blog/akari/%e5%88%9d-progression-%e3%82%b5%e3%82%a4%e3%83%88.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>progression で作るページ</title>
		<link>http://www.brooklyn.jp/blog/actionscript/progression-%e3%81%a7%e4%bd%9c%e3%82%8b%e3%83%9a%e3%83%bc%e3%82%b8.html</link>
		<comments>http://www.brooklyn.jp/blog/actionscript/progression-%e3%81%a7%e4%bd%9c%e3%82%8b%e3%83%9a%e3%83%bc%e3%82%b8.html#comments</comments>
		<pubDate>Fri, 21 Nov 2008 06:01:03 +0000</pubDate>
		<dc:creator>jam</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[progression]]></category>

		<guid isPermaLink="false">http://www.brooklyn.jp/blog/?p=72</guid>
		<description><![CDATA[こちらで公開されている taka:niumさんのサンプルを見てて気づいたので、ちょいメモ。
jp.progression.casts.animation.InOutMovie.as を extends するとタイムラインに作ったアニメーションを CastEvent.CAST_ADDED のタイミングで再生してくれる。
ラベル処理で再生するので、タイムラインベースみたいに作れるみたいデス。
クラス自体に
private var _inStateFrames:Array = [ "in", "stop" ];
private var _outStateFrames:Array = [ "stop", "out" ];
とあり、その下の _castAdded() での処理をみると
配列の frames[0] に移動して、 frames[i] に向かって New DoTweener() をしてるから
表示するときは、
ラベル「in」から再生、そして「stop」に来ると停止
消すときは、
ラベル「stop」から再生、そして「out」で停止
なるほど、これはラクだ！！
自分で gotoAndPlay() とか書かないで、ラベルの位置で制御できるなんて、ステキ過ぎる。
&#8211;
追記 : 08.11.21 &#8211; 18:05
ダウンロードできるサンプルだと書かれていないのだけれども、
InOutMovie は CastMovieClip を拡張したものなので、
protected override function _onCastAdded() と、
protected override function _onCastRemoved() が使用できます。
これの addCommand() でガシガシ処理しちゃえるのね。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.progression.jp/archives/476">こちら</a>で公開されている taka:niumさんのサンプルを見てて気づいたので、ちょいメモ。</p>
<p>jp.progression.casts.animation.InOutMovie.as を extends するとタイムラインに作ったアニメーションを CastEvent.CAST_ADDED のタイミングで再生してくれる。<br />
ラベル処理で再生するので、タイムラインベースみたいに作れるみたいデス。</p>
<p>クラス自体に<br />
private var _inStateFrames:Array = [ "in", "stop" ];<br />
private var _outStateFrames:Array = [ "stop", "out" ];<br />
とあり、その下の _castAdded() での処理をみると<br />
配列の frames[0] に移動して、 frames[i] に向かって New DoTweener() をしてるから</p>
<p>表示するときは、<br />
ラベル「in」から再生、そして「stop」に来ると停止<br />
消すときは、<br />
ラベル「stop」から再生、そして「out」で停止</p>
<p>なるほど、これはラクだ！！<br />
自分で gotoAndPlay() とか書かないで、ラベルの位置で制御できるなんて、ステキ過ぎる。</p>
<p>&#8211;<br />
追記 : 08.11.21 &#8211; 18:05</p>
<p>ダウンロードできるサンプルだと書かれていないのだけれども、<br />
InOutMovie は CastMovieClip を拡張したものなので、<br />
protected override function _onCastAdded() と、<br />
protected override function _onCastRemoved() が使用できます。<br />
これの addCommand() でガシガシ処理しちゃえるのね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brooklyn.jp/blog/actionscript/progression-%e3%81%a7%e4%bd%9c%e3%82%8b%e3%83%9a%e3%83%bc%e3%82%b8.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>compiler errors で url エラーが…</title>
		<link>http://www.brooklyn.jp/blog/actionscript/compiler-errors-%e3%81%a7-url-%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%8c%e2%80%a6.html</link>
		<comments>http://www.brooklyn.jp/blog/actionscript/compiler-errors-%e3%81%a7-url-%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%8c%e2%80%a6.html#comments</comments>
		<pubDate>Mon, 17 Nov 2008 11:59:17 +0000</pubDate>
		<dc:creator>jam</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[progression]]></category>

		<guid isPermaLink="false">http://www.brooklyn.jp/blog/?p=66</guid>
		<description><![CDATA[完全に自分の凡ミスなのですが、
xml にサムネイルの画像パスを記述してて、
それを子シーンにて、こんな感じで読み込みます。


var xml:XMLList = new XMLList(this.sceneInfo.data);
var obj:Object = XMLUtil.xmlToObject( xml );
path = obj.imageurl;


その後、それを使って URLRequest しようとしたときでした。


var req:URLRequest = new URLRequest( path );


んが、何も表示されないであります。
深度の問題かなっと思ったけれども、レイアウトに必要なものは
ほとんど new AddChildAt() で指定しているので、それはないなっと。
っで、色々 trace() を加えていたら、発見。
実ディレクトリでは「contents/images/thumbnail/***.jpg」となっているのですが、
xml には手違い（← 言い訳）で「contents/image/thumbnail/***.jpg」と記述してました・・・。
普通なら、
「Error #2044: ハンドルされていない ioError : text=Error #2035: URL が見つかりません。」
が Output で表示されるので、全然気づきませんでした。
お恥ずかしい限りです。。。
]]></description>
			<content:encoded><![CDATA[<p>完全に自分の凡ミスなのですが、<br />
xml にサムネイルの画像パスを記述してて、<br />
それを子シーンにて、こんな感じで読み込みます。</p>
<blockquote>
<pre>
var xml:XMLList = new XMLList(this.sceneInfo.data);
var obj:Object = XMLUtil.xmlToObject( xml );
path = obj.imageurl;
</pre>
</blockquote>
<p>その後、それを使って URLRequest しようとしたときでした。</p>
<blockquote>
<pre>
var req:URLRequest = new URLRequest( path );
</pre>
</blockquote>
<p>んが、何も表示されないであります。<br />
深度の問題かなっと思ったけれども、レイアウトに必要なものは<br />
ほとんど new AddChildAt() で指定しているので、それはないなっと。</p>
<p>っで、色々 trace() を加えていたら、発見。<br />
実ディレクトリでは「contents/images/thumbnail/***.jpg」となっているのですが、<br />
xml には手違い（← 言い訳）で「contents/image/thumbnail/***.jpg」と記述してました・・・。</p>
<p>普通なら、<br />
「Error #2044: ハンドルされていない ioError : text=Error #2035: URL が見つかりません。」<br />
が Output で表示されるので、全然気づきませんでした。</p>
<p>お恥ずかしい限りです。。。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brooklyn.jp/blog/actionscript/compiler-errors-%e3%81%a7-url-%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%8c%e2%80%a6.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ルートシーンの Property を参照する</title>
		<link>http://www.brooklyn.jp/blog/actionscript/%e3%83%ab%e3%83%bc%e3%83%88%e3%82%b7%e3%83%bc%e3%83%b3%e3%81%ae-property-%e3%82%92%e5%8f%82%e7%85%a7%e3%81%99%e3%82%8b.html</link>
		<comments>http://www.brooklyn.jp/blog/actionscript/%e3%83%ab%e3%83%bc%e3%83%88%e3%82%b7%e3%83%bc%e3%83%b3%e3%81%ae-property-%e3%82%92%e5%8f%82%e7%85%a7%e3%81%99%e3%82%8b.html#comments</comments>
		<pubDate>Wed, 12 Nov 2008 11:37:39 +0000</pubDate>
		<dc:creator>jam</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[progression]]></category>

		<guid isPermaLink="false">http://www.brooklyn.jp/blog/?p=62</guid>
		<description><![CDATA[ときは、「IndexScene(root).PROPERTY_NAME」の様に書けば良いそうです。
なので、こんな感じになるっということですかね。


// example code : assume TEMP as root property
var slist:SerialList = new SerialList()
slist.addCommand(
	new Trace("TEMP : " + IndexScene(root).TEMP)
)
// output - TEMP : [CLASS_NAME id="TEMP" name="instance**" group="null"]


今のとこの謎：
1. 下階層の extends CastSprite したモノから progression が参照できない。
extends SceneObject だと出来る。なんで？？
解消しました。コードは ↓
2. _onLoad() と _onInit() の違いをいまいち把握してない。
これは後に大問題になりそうな予感。。。
3. 子シーンから親シーンに戻って来たときはどーなるの？
サンプルだと行きっぱなしですね、これどーにかしないと。
4. そもそも僕のやり方は合ってるのだろうか？？
きっと人それぞれ最終的なカタチも仕様も違うから何とも言えないけど、何かもっと有り難いやり方がある気がしてならない今日この頃。
しかし、急な案件のおかげ様でじっくりやる時間が無いデス。
むー、困っーたー
&#8212;
追記 : 08.11.13 &#8211; 2:43 am
謎その1の解消コード
注：かなりの力技です。もっと良い方法がありそうなので、あんまり参考にしない方がよいかも&#8230;
まずは、IndexScene.as の CastSprite を宣言する時に引数を追加する



var temp:CastSprite = new CastSprite({prog:progression});


そして、CastSprite.as に参照させるスクリプトを記述



private var [...]]]></description>
			<content:encoded><![CDATA[<p>ときは、「IndexScene(root).PROPERTY_NAME」の様に書けば良いそうです。</p>
<p>なので、こんな感じになるっということですかね。</p>
<blockquote>
<pre>
// example code : assume TEMP as root property
var slist:SerialList = new SerialList()
slist.addCommand(
	new Trace("TEMP : " + IndexScene(root).TEMP)
)
// output - TEMP : [CLASS_NAME id="TEMP" name="instance**" group="null"]
</pre>
</blockquote>
<p>今のとこの謎：<br />
<strike>1. 下階層の extends CastSprite したモノから progression が参照できない。<br />
extends SceneObject だと出来る。なんで？？</strike><br />
解消しました。コードは ↓</p>
<p>2. _onLoad() と _onInit() の違いをいまいち把握してない。<br />
これは後に大問題になりそうな予感。。。<br />
3. 子シーンから親シーンに戻って来たときはどーなるの？<br />
サンプルだと行きっぱなしですね、これどーにかしないと。<br />
4. そもそも僕のやり方は合ってるのだろうか？？<br />
きっと人それぞれ最終的なカタチも仕様も違うから何とも言えないけど、何かもっと有り難いやり方がある気がしてならない今日この頃。</p>
<p>しかし、急な案件のおかげ様でじっくりやる時間が無いデス。<br />
むー、困っーたー</p>
<p>&#8212;<br />
追記 : 08.11.13 &#8211; 2:43 am</p>
<p>謎その1の解消コード<br />
注：かなりの力技です。もっと良い方法がありそうなので、あんまり参考にしない方がよいかも&#8230;</p>
<p>まずは、IndexScene.as の CastSprite を宣言する時に引数を追加する</p>
<blockquote>
<pre>

var temp:CastSprite = new CastSprite({prog:progression});
</pre>
</blockquote>
<p>そして、CastSprite.as に参照させるスクリプトを記述</p>
<blockquote>
<pre>

private var indexObject:Object;

/*======================================================================*//**
 * コンストラクタ
 */
public function CastSprite( initObject:Object = null ) {
	super( initObject );
	// indexObject に initObject の参照をコピー
	indexObject = initObject;
	trace("args : " + indexObject.prog)
}

// output - args : [Progression id="Index" group="null" sync="true"]
</pre>
</blockquote>
<p>これで、CastSprite 内でも「indexObject.prog」は「progression」と同様に機能します。<br />
また何かいい方法を発見したら、追記します。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brooklyn.jp/blog/actionscript/%e3%83%ab%e3%83%bc%e3%83%88%e3%82%b7%e3%83%bc%e3%83%b3%e3%81%ae-property-%e3%82%92%e5%8f%82%e7%85%a7%e3%81%99%e3%82%8b.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>子シーンでの処理を追加</title>
		<link>http://www.brooklyn.jp/blog/actionscript/%e5%ad%90%e3%82%b7%e3%83%bc%e3%83%b3%e3%81%a7%e3%81%ae%e5%87%a6%e7%90%86%e3%82%92%e8%bf%bd%e5%8a%a0.html</link>
		<comments>http://www.brooklyn.jp/blog/actionscript/%e5%ad%90%e3%82%b7%e3%83%bc%e3%83%b3%e3%81%a7%e3%81%ae%e5%87%a6%e7%90%86%e3%82%92%e8%bf%bd%e5%8a%a0.html#comments</comments>
		<pubDate>Tue, 11 Nov 2008 11:57:20 +0000</pubDate>
		<dc:creator>jam</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[progression]]></category>

		<guid isPermaLink="false">http://www.brooklyn.jp/blog/?p=61</guid>
		<description><![CDATA[-
http://www.brooklyn.jp/progression/
-
が今や、只の検証用ページになりつつある。。。
一応、子シーンでの処理を追加しました。
といっても、画像が読み込まれるだけのなーんにもオモロくない感じです。
子シーンとして使っている ChildSceneObject.as がこんな風になりました。



public var bgContainer:CastSprite;

private var imgLoader:CastImageLoader;
private var scene:String;

public function ChildSceneObject( name:String = null, initObject:Object = null ) {
	super( name, initObject );
}

protected override function _onLoad():void {

	// 実行したいコマンドを登録します。
	var xml:XMLList = new XMLList(this.sceneInfo.data);
	// 現在いるシーンの名前を取得して登録
	scene = String(xml).toLowerCase();

	// 今は、背景の画像を読み込んだ後に CastSprite に AddChild しているので、それを参照
	bgContainer = new CastSprite();
	bgContainer = progression.container.getInstanceById("bgContainer") as CastSprite;

	imgLoader = new CastImageLoader();
	imgLoader.alpha = 0;
	imgLoader.addEventListener(CastEvent.CAST_LOAD_COMPLETE, loadComplete);

	// シーンの名前に該当する画像を読み込む
	addCommand(
		function():void { imgLoader.load(new [...]]]></description>
			<content:encoded><![CDATA[<p>-<br />
<a href="http://www.brooklyn.jp/progression/">http://www.brooklyn.jp/progression/</a><br />
-</p>
<p>が今や、只の検証用ページになりつつある。。。<br />
一応、子シーンでの処理を追加しました。<br />
といっても、画像が読み込まれるだけのなーんにもオモロくない感じです。</p>
<p>子シーンとして使っている ChildSceneObject.as がこんな風になりました。</p>
<blockquote>
<pre>

public var bgContainer:CastSprite;

private var imgLoader:CastImageLoader;
private var scene:String;

public function ChildSceneObject( name:String = null, initObject:Object = null ) {
	super( name, initObject );
}

protected override function _onLoad():void {

	// 実行したいコマンドを登録します。
	var xml:XMLList = new XMLList(this.sceneInfo.data);
	// 現在いるシーンの名前を取得して登録
	scene = String(xml).toLowerCase();

	// 今は、背景の画像を読み込んだ後に CastSprite に AddChild しているので、それを参照
	bgContainer = new CastSprite();
	bgContainer = progression.container.getInstanceById("bgContainer") as CastSprite;

	imgLoader = new CastImageLoader();
	imgLoader.alpha = 0;
	imgLoader.addEventListener(CastEvent.CAST_LOAD_COMPLETE, loadComplete);

	// シーンの名前に該当する画像を読み込む
	addCommand(
		function():void { imgLoader.load(new URLRequest("contents/images/"+scene+".jpg")) }
	);
}

public function loadComplete( e:CastEvent ):void {

	imgLoader.removeEventListener(CastEvent.CAST_LOAD_COMPLETE, loadComplete);

	var slist:SerialList = new SerialList();
	slist.addCommand(
		new AddChild( bgContainer, imgLoader ),
		new DoTweener( imgLoader, {alpha:1, time:3, transition:"easeOutQuart"} )
	);
	slist.execute();

};

// 移動時に画像を消す
protected override function _onUnload():void {
	// 実行したいコマンドを登録します。
	addCommand (
		new DoTweener( imgLoader, {alpha:0, time:2, transition:"easeOutQuart"} ),
		new RemoveChild( bgContainer, imgLoader )
	);
}
</pre>
</blockquote>
<p>画像を消すのは、現状は _onUnload() で処理しているけれど、 _onGoto() とどっちの方がいいのやら。<br />
でも、これは子シーンで下階層に何も無い場合は、確実に _onUnload() の対象になるはずなので、<br />
とりあえずは、これでいいかな。</p>
<p>そう言えば、<a href="http://www.brooklyn.jp/blog/actionscript/xml-からシーンとボタンを作る/">前回の投稿</a>で作ったボタンのままなのだけれど、なぜか遷移中に機能が kill されていない。。。。<br />
おかしい、 progression のサンプルを初めて触ったときは自動で出来てたのに。<br />
autoLock を false にした記憶はないので、どっかで間違ってる可能性大ですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brooklyn.jp/blog/actionscript/%e5%ad%90%e3%82%b7%e3%83%bc%e3%83%b3%e3%81%a7%e3%81%ae%e5%87%a6%e7%90%86%e3%82%92%e8%bf%bd%e5%8a%a0.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>StageUtil の example がおかしい？</title>
		<link>http://www.brooklyn.jp/blog/actionscript/stageutil-%e3%81%ae-example-%e3%81%8c%e3%81%8a%e3%81%8b%e3%81%97%e3%81%84%ef%bc%9f.html</link>
		<comments>http://www.brooklyn.jp/blog/actionscript/stageutil-%e3%81%ae-example-%e3%81%8c%e3%81%8a%e3%81%8b%e3%81%97%e3%81%84%ef%bc%9f.html#comments</comments>
		<pubDate>Sun, 09 Nov 2008 15:38:47 +0000</pubDate>
		<dc:creator>jam</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[progression]]></category>

		<guid isPermaLink="false">http://www.brooklyn.jp/blog/?p=59</guid>
		<description><![CDATA[progression の ASDOC をざらーっと見ていたら気付いたこと。
ユーティリティクラスの StageUtils の中にある Public Method の getDocument() の使用例で下記のようになっているけど、これだと動かない気がする。


var documentRoot:Sprite = getDocument( stage );
trace( documentRoot.root == documentRoot ); // true


そもそも、ユーティリティ系のクラスは import による宣言のみで、コンストラクタを呼び出さない仕様になっているので、new 宣言が出来ないはず。
なので、使用するときは、その都度 StageUtil を頭に付けないといけないんじゃないかなーっと。
だから、多分こーすれば使えると思われまっす。


var documentRoot:Sprite = StageUtil.getDocument( stage );
trace( documentRoot.root == documentRoot ); // true


]]></description>
			<content:encoded><![CDATA[<p>progression の <a href="http://progression.jp/doc/ref/asdoc/index.html">ASDOC</a> をざらーっと見ていたら気付いたこと。</p>
<p>ユーティリティクラスの <a href="http://progression.jp/doc/ref/asdoc/jp/nium/utils/StageUtil.html">StageUtils</a> の中にある Public Method の getDocument() の使用例で下記のようになっているけど、これだと動かない気がする。</p>
<blockquote>
<pre>
var documentRoot:Sprite = getDocument( stage );
trace( documentRoot.root == documentRoot ); // true
</pre>
</blockquote>
<p>そもそも、ユーティリティ系のクラスは import による宣言のみで、コンストラクタを呼び出さない仕様になっているので、new 宣言が出来ないはず。<br />
なので、使用するときは、その都度 StageUtil を頭に付けないといけないんじゃないかなーっと。</p>
<p>だから、多分こーすれば使えると思われまっす。</p>
<blockquote>
<pre>
var documentRoot:Sprite = StageUtil.getDocument( stage );
trace( documentRoot.root == documentRoot ); // true
</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.brooklyn.jp/blog/actionscript/stageutil-%e3%81%ae-example-%e3%81%8c%e3%81%8a%e3%81%8b%e3%81%97%e3%81%84%ef%bc%9f.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

