しつこく、まだやってます (^ ^;;
読み込んだloaderの座標をtweenせずに、ページ全体をtweenさせるのならば、loaderのページ内での座標さえフィックスできればいいというわけで、スクリプトが少し簡単になりました。
で、残った問題は読み込み中のプログレスバーの表示とかいろいろです。
スクリプトがだいぶ変わってしまいますが、次のようにしてみました。いまココです。
読み込んだloaderの座標をtweenせずに、ページ全体をtweenさせるのならば、loaderのページ内での座標さえフィックスできればいいというわけで、スクリプトが少し簡単になりました。
package pages{
import jp.progression.casts.*;
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 flash.display.DisplayObject;
import flash.display.Loader;
import flash.net.URLRequest;
/**
* ...2009.10.27
* @author ...oshige
*/
public class ThePage extends CastMovieClip {
private var _url:String;
private var page:CastMovieClip;
public function ThePage(initObject:Object=null) {
// 親クラスを初期化します。
super(initObject);
_url = initObject.url;
page = this;
}
protected override function atCastAdded():void {
var list:SerialList = new SerialList();
list.addCommand(
new Prop(page,{y:-stage.stageHeight}),
new LoadSWF(new URLRequest(_url)),
function():void {
var loader:Loader = Loader( this.latestData );
list.insertCommand(
new Prop(loader, {x:(stage.stageWidth-loader.width)/2,y:(stage.stageHeight-loader.height)/2}),
new AddChild(page, loader)
)
},
new DoTweener( page, { y:0,time:1, transition:"easeinoutsin"} )
)
list.execute();
}
protected override function atCastRemoved():void {
addCommand(
new DoTweener( page, { y:stage.stageHeight, time:1, transition:"easeinoutsin"} ),
//読み込んだswfを消すために行う
new RemoveAllChildren(this)
);
}
}
}
で、残った問題は読み込み中のプログレスバーの表示とかいろいろです。
スクリプトがだいぶ変わってしまいますが、次のようにしてみました。いまココです。
package pages{
import jp.progression.casts.*;
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 flash.display.DisplayObject;
import flash.display.Loader;
import flash.net.URLRequest;
/**
* ...2009.10.27
* @author ...oshige
*/
public class ThePage extends CastMovieClip {
private var _url:String;
private var page:CastMovieClip;
public function ThePage(initObject:Object=null) {
// 親クラスを初期化します。
super(initObject);
_url = initObject.url;
page = this;
}
private function loadSWF():void {
//pageコンテンツをURLから読み込む(swf、画像)
var ldswf:LoadSWF = new LoadSWF(new URLRequest(_url));
ldswf.onProgress = function():void {
trace(ldswf.bytesLoaded + " / " + ldswf.bytesTotal + " (" + ldswf.percent + "%)" );
};
ldswf.onComplete = function():void{
var ld:Loader = this.loader;
page.addChild(ld);
ld.x=(stage.stageWidth-ld.width)/2;
ld.y=(stage.stageHeight-ld.height)/2;
};
ldswf.execute();
}
protected override function atCastAdded():void {
addCommand(
new Prop(page,{y:-stage.stageHeight}),
//swf読み込み
new Func(loadSWF),
new DoTweener( page, {y:0,time:1, transition:"easeinoutsin"} )
);
}
protected override function atCastRemoved():void {
addCommand(
new DoTweener( page, { y:stage.stageHeight, time:1, transition:"easeinoutsin"} ),
//読み込んだswfを消すために行う
new RemoveAllChildren(this)
);
}
}
}








