前エントリーより暫く間が空いてしまいました。。。
今回はCastオブジェクトの中の一つ、CastImageLoaderを使ってみようと思います。
使い方は他のCastオブジェクトと一緒。
今回はCastImageLoaderを継承したサブクラスを作ってみました。
他のと違う所は
_onCastLoadStart、_onCastLoadCompleteで読み込み開始終了の処理が書けるところ
とりあえず以下クラス内容です。
package myproject.loaders
{
import jp.progression.casts.*;
import jp.progression.commands.*;
import jp.progression.events.*;
import jp.progression.loader.*;
import jp.progression.*;
import jp.progression.scenes.*;
public class MyLoader extends CastImageLoader
{
//LoaderをAddChildする表示オブジェクト
private var _container:CastButton;
//ロード中に表示するCastSprite
private var _loadImage:LoadImage = new LoadImage();
/*コンストラクタ*/
public function MyLoader( initObject:Object = null )
{
super( initObject );
_container = initObject.container;
}
/*LoaderがRemoveされた時*/
protected override function _onCastRemoved():void
{
addCommand(
new RemoveChild(_container, this)
);
}
/*Load開始時*/
protected override function _onCastLoadStart():void
{
addCommand(
new AddChild(_container, _loadImage),
new Func(function ():void{trace("読み込み開始")})
)
}
/*Load完了時*/
protected override function _onCastLoadComplete():void
{
addCommand(
new RemoveChild(_container, _loadImage),
new Func(function ():void { trace("読み込み終了") } ),
new AddChild(_container, this)
);
}
}
}
ポイントは読み込み最中にムービークリップやスプライトを配置したい場合、自身はローダーなので、自分にはロード中表示のSpriteなりをAddChild出来ない点でしょうか?
なので、私はinitObjectで呼び出し元の表示オブジェクト参照してロード中表示のSpriteをAddChildしています。
今回はCastButtonで呼び出したのでソースコードがそのようになっています。
(注:initObjectの話はtrick7さんのブログで拝見し、勉強させていただきました。以前書いたsetterの話はinitObjectでやった方がいいんじゃないかと思います。)
以下呼び出し元(CastButtonの中に書いてます)
public function loadImage():void {
_ImageLoader = new MyLoader({container:this});
var _ImageUrlRequest = new URLRequest("thumb/" + _ImageUrl);
_ImageLoader.load(_ImageUrlRequest);
}
お気づきの方いらっしゃると思いますが、addEventListenerを一切書いていません。
やっぱり便利だよprogression。
私の以前のサンプルでは結構散在しておりましたが、現在これで書き換えています。書き換え後公開します。たぶん。
正直、フルフラッシュサイトだけでなくて、普通のバナーサイズの案件でも十分使えます。
まだまだ勉強不足ですが、失敗しながらもどんどんやっていこうと思います。

記事を拝見していて当ブログへのリンクがあってびっくりしました。trick7の寺井です。
やっとProgression3を触りだした自分にとって、northprint様のエントリは希望の光明です。
僕はもっと低次元で躓いている状態なのですが、頑張って今後とも参考にさせていただきます。よろしくお願いいたします。
>trick7寺井様
いつもブログ拝見させていただいております。
trick7様のブログにはかなり助けられておりましたので(特にCASA Framework関連)、私のこんなエントリでもお役に立ててなによりです。
私もまだまだ把握しきれていない部分が多いのですが、可能な限りエントリしていこうと思っています。
宜しくお願いいたします。