Home > ActionScript | Progression > PreloaderとListenコマンド(1)

PreloaderとListenコマンド(1)

PreloaderクラスはProgression2.0ではExPreloaderを継承していたものが、Progression3.0になって新たにCastPreloaderを継承することとなり大きく変わりましたね。

イベントの流れとしては

_onInit (読み込み完了 / ステージの設定など)
  ↓
_onCastLoadStart (ロードが開始される直前)
  ↓ ←登録されたCommandListの全てのコマンドの処理が
  ↓  完了すれば次へ
[メインSWFの読み込み開始]
  ↓
_onProgress (プログレスバーの表示など)
  ↓
_onCastLoadComplete
  ↓ ←登録されたCommandListの全てのコマンドの処理が
  ↓  完了すれば次へ
[メインSWFをドキュメントの表示リストに追加]

という流れらしい。
なので以前はロードが開始して読み込み終わるまで止めることのできなかったので、本当にローディングの処理しかできなかったけれど、ロード開始直前とロード完了直後のCommandListにより、幅広い表現ができますね。

たとえば、
「このコンテンツには音声が含まれます。ヘッドフォンのボリューム上げてね」みたいなアテンションとか、「HTML版」「Flash版」みたいな振り分けページがFlashページでできる。
早く見たいときに散々メインコンテンツ読み込んでからでないとHTML版の表示ができないのは本当にストレスですからねぇ。。。

そんなとき使えるのがListenコマンド!
Preloaderとか、ページ遷移の前に規約を読ませるみたいなわざわざScene作るのがめんどくさい時くらいしか使い道が思いつかないListenコマンドw
でも使い出すとすごく便利かもしれない。

Listenコマンドはイベントを送出するdispatcherと受け取りたいイベントの種類の名前を渡すことで、そのイベントが起こるまで待機してくれます。
flashButtonとhtmlButtonというインスタンスがあるとして

protected override function _onCastLoadStart():void {
	htmlButton.addEventListener( MouseEvent.CLICK, function():void { navigateToURL( new URLRequest( "html.html" ) ); } );
	addCommand(
		[
			new AddChild( this, flashButton ),
			new AddChild( this, htmlButton )
		],
		new Listen( flashButton, MouseEvent.CLICK, { timeOut: 0 } ),
		new Trace( "Flash版ボタンがクリックされました" ),
		[
			new RemoveChild( this, flashButton ),
			new RemoveChild( this, htmlButton )
		]
	);
}

とすれば、Flash版のボタンを押されたときにのみメインコンテンツのロードを行います。
Listenコマンドを使用する際は、第3引数でtimeOutを”0″にしておかないとデフォルト15秒でCommandTimeOutErrorエラーが発生しコマンドリストが終了します。
(ただ終了しても問題なく動くように見えるんですけどね。。。でもエラーが出るのはいやなので設定必須)

次は複数のlistenerを管理する場合のことについて書いてみます。

Comments:0

Comment Form
Remember personal info

Trackbacks:2

Trackback URL for this entry
http://blog.cuegraphix.com/wp-trackback.php?p=11
Listed below are links to weblogs that reference
PreloaderとListenコマンド(1) from blog.cuegraphix.com
pingback from blog.cuegraphix.com - PreloaderとListenコマンド(2) 08-11-20 (木) 17:58

[...] Older [...]

pingback from Bookmark::090210 « Kuu2’s Blog 09-02-13 (金) 15:55

[...] PreloaderとListenコマンド(1) [...]

Home > ActionScript | Progression > PreloaderとListenコマンド(1)

Search
Feeds
Meta

Return to page top