niumさんから最適解をもらいました。こういうやり方がよいということです。
ステージリサイズには対応してませんが、これでステージ中央に表示されます。プログレスバーにも対応できますね。
[:script:] ThePageクラス
この変更にともなって、ThePageクラスを呼び出すTheSceneクラスとIndexSceneクラスを少し変更。
swfを試す。
サンプルファイル一式→ LoadSWF_pages4.zip
ステージリサイズには対応してませんが、これでステージ中央に表示されます。プログレスバーにも対応できますね。
[:script:] ThePageクラス
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.Loader;
import flash.net.URLRequest;
/**
* ...2009.10.27b
* @author ...oshige
*/
public class ThePage extends CastMovieClip {
private var _url:String;
public function ThePage(url:String, initObject:Object=null) {
_url = url;
// 親クラスを初期化します。
super(initObject);
}
protected override function atCastAdded():void {
addCommand(
new Prop(this,{y:-stage.stageHeight}),
//swf読み込み
new LoadSWF(new URLRequest(_url), null, {
onProgress:function():void {
trace(this.bytesLoaded + " / " + this.bytesTotal + " (" + this.percent + "%)" );
},
onComplete:function():void{
var ld:Loader = this.loader;
self.addChild(ld);trace("self=",self);
ld.x=(stage.stageWidth-ld.width)/2;
ld.y=(stage.stageHeight-ld.height)/2;
}
}),
new DoTweener( this, {y:0,time:1, transition:"easeinoutsin"} )
);
}
protected override function atCastRemoved():void {
addCommand(
new DoTweener( this, { y:stage.stageHeight, time:1, transition:"easeinoutsin"} ),
//読み込んだswfを消すために行う
new RemoveAllChildren(this)
);
}
}
}
この変更にともなって、ThePageクラスを呼び出すTheSceneクラスとIndexSceneクラスを少し変更。
swfを試す。
サンプルファイル一式→ LoadSWF_pages4.zip








