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

ボールのお散歩

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

// forked from nengafl's nengafl
package
{
	
	
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	
	[SWF(width="465", height="465", backgroundColor="0x000000", frameRate="25")]
	public class FrictionSample extends Sprite
	{
		private var _ball1:MyBall;  //1個目のボール
		private var _ball2:MyBall; //2個目のボール
		private var _ball3:MyBall; //3個目のボール
		private var _ball4:MyBall; //4個目のボール
		private var _ball5:MyBall; //5個目のボール
		private var _ball6:MyBall; //6個目のボール
		private var _ball7:MyBall; //7個目のボール
		private var _ball8:MyBall; //8個目のボール
		private var _ball9:MyBall; //9個目のボール
		private var _ball10:MyBall;//10個目のボール
				
		public function FrictionSample()
		{
			//ボールの作成
			_ball1 = new MyBall();   //1個目のボール
			_ball2 = new MyBall();  //2個目のボール
			_ball3 = new MyBall();  //3個目のボール
			_ball4 = new MyBall();  //4個目のボール
			_ball5 = new MyBall();  //5個目のボール
			_ball6 = new MyBall();  //6個目のボール
			_ball7 = new MyBall();  //7個目のボール
			_ball8 = new MyBall();  //8個目のボール
			_ball9 = new MyBall();  //9個目のボール
			_ball10 = new MyBall(); //10個目のボール
			//ボールの位置を指定
			_ball1.x = _ball1.y   = 100;//1個目のボールの位置
			_ball2.x = _ball2.y   = 200;//2個目のボールの位置
			_ball3.x = _ball3.y   = 300;//2個目のボールの位置
			_ball4.x = _ball4.y   = 400;//2個目のボールの位置
			_ball5.x = _ball5.y   = 500;//2個目のボールの位置
			_ball6.x = _ball6.y   = 600;//2個目のボールの位置
			_ball7.x = _ball7.y   = 700;//2個目のボールの位置
			_ball8.x = _ball8.y   = 800;//2個目のボールの位置
			_ball9.x = _ball9.y   = 900;//2個目のボールの位置
			_ball10.x = _ball10.y = 1000;//2個目のボールの位置
			//ボールを表示
			addChild(_ball1); //1個目のボール
			addChild(_ball2); //2個目のボール
			addChild(_ball3); //3個目のボール
			addChild(_ball4); //4個目のボール
			addChild(_ball5); //5個目のボール
			addChild(_ball6); //6個目のボール
			addChild(_ball7); //7個目のボール
			addChild(_ball8); //8個目のボール
			addChild(_ball9); //9個目のボール
			addChild(_ball10);//10個目のボール
			
			
			addEventListener(Event.ENTER_FRAME,loop);
		}
		
		//ここではクリックされたら丸が消える処理
		 public function clear():void
		  {
			  //イベントハンドラの解除
			  removeEventListener(MouseEvent.CLICK,clickHandler);
			  
			  //円の消去
			  graphics.clear();
		  }
		
		private function loop(event:Event):void
		{
			//ボール1に2〜10までボールがついてくる処理
			_ball1.x += friction(_ball1.x,mouseX,8)    // 1個目のボールX
			_ball1.y += friction(_ball1.y,mouseY,8)    // 1個目のボールY
			_ball2.x += friction(_ball2.x,_ball1.x,5) // 2個目のボールX
			_ball2.y += friction(_ball2.y,_ball1.y,5) // 2個目のボールY
			_ball3.x += friction(_ball3.x,_ball2.x,5) // 3個目のボールX
			_ball3.y += friction(_ball3.y,_ball2.y,5) // 3個目のボールY
			_ball4.x += friction(_ball4.x,_ball3.x,5) // 4個目のボールX
			_ball4.y += friction(_ball4.y,_ball3.y,5) // 4個目のボールY
			_ball5.x += friction(_ball5.x,_ball4.x,5) // 5個目のボールX
			_ball5.y += friction(_ball5.y,_ball4.y,5) // 5個目のボールY
			_ball6.x += friction(_ball6.x,_ball5.x,5) // 6個目のボールX
			_ball6.y += friction(_ball6.y,_ball5.y,5) // 6個目のボールY
			_ball7.x += friction(_ball7.x,_ball6.x,5) // 7個目のボールX
			_ball7.y += friction(_ball7.y,_ball6.y,5) // 7個目のボールY
			_ball8.x += friction(_ball8.x,_ball7.x,5) // 8個目のボールX
			_ball8.y += friction(_ball8.y,_ball7.y,5) // 8個目のボールY
			_ball9.x += friction(_ball9.x,_ball8.x,5) // 9個目のボールX
			_ball9.y += friction(_ball9.y,_ball8.y,5)  // 9個目のボールY
			_ball10.x += friction(_ball10.x,_ball9.x,5)//10個目のボールX
			_ball10.y += friction(_ball10.y,_ball9.y,5)//10個目のボールY
			addEventListener(MouseEvent.CLICK,clickHandler);
			
		}
		//ゼノンの逆説を使ったイージング計算
		private function friction(src:Number,dest:Number,num:Number):Number
		{
			return (dest - src) / num;
		}
		//ここでは円が消えたあとのボールの位置
		private function clickHandler(event:MouseEvent):void
		{
			 x = _ball1.x;
			 y = _ball1.y;
			 
			
		}
	}
}

import flash.display.Sprite;

class MyBall extends Sprite
{
	public function MyBall():void
	{
		graphics.beginFill(Math.random() * 16777216);
		graphics.drawCircle(0,0,20);
		graphics.endFill();
	}
}