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

flash on 2009-4-30

//////////////////////////////////////
//
奥行きを考慮した円運動の練習		//
クリックでスタート・ストップ		//	
//
//////////////////////////////////////
Get Adobe Flash player
by kenzzz 30 Apr 2009
////////////////////////////////////////
//									//
//	奥行きを考慮した円運動の練習		//
//	クリックでスタート・ストップ		//	
//									//
////////////////////////////////////////

import flash.display.Sprite;
import flash.events.*;

package{

	[SWF(width = 465, height = 465, backgroundColor = 0xffffff, frameRate = 30)]

	public class MoveCircle extends Sprite
	{
		private const FIGURE_SIZE:uint = 10;
		private const FIGURE_CNT:uint = 24;
		private var figureArray:Array = new Array();
		private var angles:Array = new Array();
		private var flag:Boolean = false;

		public function MoveCircle(){
			init();
			this.stage.addEventListener(MouseEvent.CLICK,startAndStop);
		}
		
		//円の作成
		public function init():void
		{
			var circle:Sprite;
			var keisan:Keisan;
			for(var i:uint ; i<FIGURE_CNT ; i++)
			{
				circle = new Sprite();
				circle.graphics.beginFill(0xFFFFFF * Math.random());
				circle.graphics.drawCircle(0, 0, FIGURE_SIZE);
				circle.graphics.endFill();
				keisan = new Keisan(i*15);
				keisan.pointKeisan();
				circle.x = keisan.EyeX;
				circle.y = keisan.EyeY;
				circle.alpha = keisan.EyeAlpha;
				circle.scaleX = keisan.EyeZ;
				circle.scaleY = keisan.EyeZ;

				addChild(circle);
				figureArray.push(circle);
				angles.push(keisan.Angle);
			}
		}
		
		//終点座標に配置
		public function move(event:Event):void
		{
			for(var j:uint=0;j<FIGURE_CNT;j++)
			{
				var keisan:Keisan = new Keisan(angles[j]);
				keisan.pointKeisan();
				figureArray[j].x = keisan.EyeX;
				figureArray[j].y = keisan.EyeY;
				figureArray[j].alpha = keisan.EyeAlpha;
				figureArray[j].scaleX = keisan.EyeZ;
				figureArray[j].scaleY = keisan.EyeZ;	
				angles[j] = keisan.Angle;
			}
		}
		
		public function startAndStop(event:MouseEvent):void
		{
			if( flag ){
				stage.removeEventListener(Event.ENTER_FRAME, move);
			} else {
				stage.addEventListener(Event.ENTER_FRAME, move);
			}
			
			flag=!(flag);
		}
	}
}

//import flash.display.Sprite;

class Keisan extends Sprite
{
	private var circleZ:Number;
	private var circleY:Number;
	private var eyeX:Number;
	private var eyeY:Number;
	private var eyeZ:Number;
	private var eyeAlpha:Number;
	private var radian:Number;
	private var angle:Number;
	//基点
	private var myStageWidth:Number = 150;
	private var myStageHeight:Number = 220;
	private const BALL_ANGLE:int = -1;

	public function Keisan(angle:Number)
	{
		this.angle = angle;
	}
	public function get EyeX():Number
	{
	 	return eyeX;
	}
	public function get EyeY():Number
	{
		return eyeY;
	}
	public function get EyeZ():Number
	{
		return eyeZ;
	}
	public function get EyeAlpha():Number
	{
		return eyeAlpha;
	}
	public function get Angle():Number
	{
		return angle;
	}

	public function pointKeisan():void
	{

		//z=150に表示
		eyeZ = 150 / ( 400 + circleZ );
		eyeY = myStageHeight + (circleY * eyeZ);
		eyeX = myStageWidth + (80 * eyeZ);
		eyeAlpha = 	eyeZ + 0.1;
	}
}