In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

forked from: wonderfl から外部のモジュールを読み込む

自作ライブラリ(開発中)をモジュール経由で使用することに成功

ちなみに自作ライブラリは以下のライブラリ版
http://wonderfl.kayac.com/code/188750688526f86d0177f342bb28224dc254281d

ついでに Base64 ストリングでの埋め込み版もあり
モジュールの Base64 ストリングでの埋め込みと、そのモジュール経由でライブラリを使う方法 
http://wonderfl.kayac.com/code/e917c00d8f297bb8b50e8f9f7880c883dbf1c906

...
@author tkinjo

cross.gentenzero.com/wonderfl/module/constraintworldmodule.swf";

@param	event

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

// forked from tkinjo's wonderfl から外部のモジュールを読み込む
package  
{
	/**
	 * 自作ライブラリ(開発中)をモジュール経由で使用することに成功
	 * 
	 * ちなみに自作ライブラリは以下のライブラリ版
	 * http://wonderfl.kayac.com/code/188750688526f86d0177f342bb28224dc254281d
	 * 
	 * 
	 * ついでに Base64 ストリングでの埋め込み版もあり
	 * モジュールの Base64 ストリングでの埋め込みと、そのモジュール経由でライブラリを使う方法 
	 * http://wonderfl.kayac.com/code/e917c00d8f297bb8b50e8f9f7880c883dbf1c906
	 */
	
	import flash.display.DisplayObject;
	import flash.display.Sprite;
	import flash.events.Event;
	import mx.modules.IModuleInfo;
	import mx.modules.ModuleManager;
	
	[SWF(width="465", height="465", frameRate="60", backgroundColor="0xffffff")]
	/**
	 * ...
	 * @author tkinjo
	 */
	public class ModuleParent extends Sprite
	{
		private const MODULE_URL:String = "http://cross.gentenzero.com/wonderfl/module/constraintworldmodule.swf";
		
		private var constraintWorld:Object;
		private var mousePointer:Object;
		
		private function init():void {
			
			constraintWorld = new module.constraintWorld( 0.9 );
			
			mousePointer = new module.particle( mouseX, mouseY );
			
			//*
			var preCircle:Object;
			for ( var i:Number = 0; i < 5; i++ ) {
				
				var circle:Object = new module.circle();
				circle.friction = 0.9;
				constraintWorld.addParticle( circle );
				
				if( i == 0 )
					constraintWorld.addConstraint( new module.springConstraint( mousePointer, circle, 0.1, 20 ) );
				
				else if ( i < 3 ) {
					
					circle.friction = 0.5;
					constraintWorld.addConstraint( new module.followConstraint( preCircle, circle, 20 ) );
					
				} else
					constraintWorld.addConstraint( new module.springConstraint( preCircle, circle, 0.1, 20 ) );
				
				addChild( circle as DisplayObject );
				
				preCircle = circle;
			}
			//*/
			
			addEventListener( Event.ENTER_FRAME, enterFrameHandler );
		}
		
		/**
		 * 
		 * @param	event
		 */
		private function enterFrameHandler( event:Event ):void {
			
			mousePointer.x = mouseX;
			mousePointer.y = mouseY;
			
			constraintWorld.step();
		}
		
		
		
		
		
		/** --------------------------------------------------
		 * Module Load
		 */
		
		private var assetModule:IModuleInfo;
		private var module:Object;
		
		public function ModuleParent() 
		{
			assetModule = ModuleManager.getModule( MODULE_URL );
			assetModule.addEventListener("ready", getModuleInstance);
			assetModule.load();
		}
		
		private function getModuleInstance(event:Event):void {
			module = assetModule.factory.create() as Object;
			init();
		}
	}
}

/*
外部モジュールのソース

package  
{
	import com.tkinjo.constraintworld.constraint.*;
	import com.tkinjo.constraintworld.data.*;
	import com.tkinjo.constraintworld.world.*;
	import mx.modules.ModuleBase;
	
	public class ConstraintWorldModule extends ModuleBase
	{
		
		public function ConstraintWorldModule() 
		{
			
		}
		
		public function get iConstraint():Class { return IConstraint; }
		public function get constraint():Class { return Constraint; }
		public function get followConstraint():Class { return FollowConstraint; }
		public function get springConstraint():Class { return SpringConstraint; }
		
		public function get circle():Class { return Circle; }
		public function get iParticle():Class { return IParticle; }
		public function get particle():Class { return Particle; }
		
		public function get constraintWorld():Class { return ConstraintWorld; }
	}
	
}
*/