さらにLoadSWF()が続く

|
しつこく、まだやってます (^ ^;;
読み込んだ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)
			);
		}
	}
}
logo_67ws_on.gif
大重美幸の
ActionScript 3.0初級講座

AS3初級講座(前半)
  • 2010年3月19日(金)
  • 2010年4月21日(水)
  • 2010年5月21日(金)
AS3初級講座(後半)
  • 2010年3月26日(金)
  • 2010年4月28日(水)
  • 2010年5月28日(金)

10000円キャッシュバック

このブログ記事について

このページは、oshigeが2009年10月27日 21:49に書いたブログ記事です。

ひとつ前のブログ記事は「addCommandとinsertCommand」です。

次のブログ記事は「結論 LoadSWF() -- ステージ中央に表示」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。