pet_demo

by uranodai
♥0 | Line 73 | Modified 2010-04-16 01:36:56 | MIT License
play

ActionScript3 source code

/**
 * Copyright uranodai ( http://wonderfl.net/user/uranodai )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/kG2a
 */

package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.system.Security;
	
	[SWF(frameRate="24",backgroundColor="#FFFFFF")]
	
	public class pet_demo extends Sprite
	{
		public var boston:Pet;
		
		public function pet_demo()
		{
			boston = new Pet(PetURL.BOSTON);
			boston.x = 100;
			boston.y = 200;
			addChild(boston);
			boston.onLoad = onLoad;
		}
		
		public function onLoad():void
		{
			boston.playAction("walk");
			stage.addEventListener(Event.ENTER_FRAME, loop);
		}
		
		public function loop(e:Event):void
		{
			boston.x += 2;
		}
	}
}

import flash.display.Loader;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;

class Pet extends Sprite
{
	public var onLoad:Function;
	private var current:MovieClip;
	private var urlLoader:URLLoader;
	private var loader:Loader;
	
	public function Pet(url:String)
	{
		urlLoader = new URLLoader();
		urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
		urlLoader.addEventListener(Event.COMPLETE, onLoad1);
		urlLoader.load(new URLRequest(url));	
	}
	
	private function onLoad1(e:Event):void
	{
		loader = new Loader();
		loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoad2);
		loader.loadBytes(urlLoader.data);
	}
	
	private function onLoad2(e:Event):void
	{
		var clazz:Class = loader.contentLoaderInfo.applicationDomain.getDefinition("Pet") as Class;
		var pet:MovieClip = new clazz();
		pet.front.x = 0;
		pet.front.y = 0;
		addChild(pet.front);
		current = pet.front;
		if(onLoad != null) onLoad();
	}
	
	public function playAction(code:String):void
	{
		current.gotoAndPlay(code);
	}
}

class PetURL
{
	public static var BOSTON:String = "http://stat.ameba.net/training2010/boston.swf";
}