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

(意味の補集合) テクニックに自信のない貴方に朗報!!

┏━┓┏…┓┏━┓┏…┓┏━┓┏…┓┏━┓┏…┓┏━┓┏…┓┏━┓
┃テ┃┃ク┃┃ニ┃┃ッ┃┃ク┃┃に┃┃自┃┃信┃┃の┃┃な┃┃い┃
┗…┛┗━┛┗…┛┗━┛┗…┛┗━┛┗…┛┗━┛┗…┛┗━┛┗…┛
┏━┓┏…┓┏━┓┏…┓┏━┓┏…┓
┃貴┃┃方┃┃に┃┃朗┃┃報┃┃!!┃
┗…┛┗━┛┗…┛┗━┛┗…┛┗━┛
Get Adobe Flash player
by hgw 30 Apr 2010
    Embed
/**
 * Copyright hgw ( http://wonderfl.net/user/hgw )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/rqgr
 */

/*

┏━┓┏…┓┏━┓┏…┓┏━┓┏…┓┏━┓┏…┓┏━┓┏…┓┏━┓
┃テ┃┃ク┃┃ニ┃┃ッ┃┃ク┃┃に┃┃自┃┃信┃┃の┃┃な┃┃い┃
┗…┛┗━┛┗…┛┗━┛┗…┛┗━┛┗…┛┗━┛┗…┛┗━┛┗…┛
┏━┓┏…┓┏━┓┏…┓┏━┓┏…┓
┃貴┃┃方┃┃に┃┃朗┃┃報┃┃!!┃
┗…┛┗━┛┗…┛┗━┛┗…┛┗━┛

*/


package
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Shape;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.geom.ColorTransform;
	import flash.geom.Matrix;
	import flash.geom.Point;
	import flash.geom.Rectangle;
	
	[SWF(width="465", height="465", backgroundColor="0xFFFFFF", frameRate="60")]

	public class ShapePerceive extends Sprite
	{
		private var src:BitmapData;
		private var canvas:Bitmap;
		private var d_cir:PerceiveShape;
		public function ShapePerceive()
		{
			d_cir = new PerceiveShape();
			d_cir.start();
			
			//addChild( d_cir );
			d_cir.x = 465*.5;
			d_cir.y = 465*.5;
			
			src = new BitmapData(465,465,true,0x0);
			
			canvas = new Bitmap( new BitmapData(465, 465, true, 0x0) );
			addChild( canvas );
			addEventListener(Event.ENTER_FRAME, update);
		}
		
		private var baff:Vector.<BitmapData> = new Vector.<BitmapData>();
		private var ct:ColorTransform = new ColorTransform(1,1,1,.9);
		private function update(e:Event):void
		{	
			src.lock();
			src.draw( d_cir, d_cir.transform.matrix );
			src.colorTransform( src.rect, ct);
			src.unlock();
			
			baff.push( src.clone() );
			
			canvas.bitmapData.lock();
			for(var i:int=0; i<src.height; i++)
			{
				if(baff.length-1<i) break;
				canvas.bitmapData.copyPixels( baff[i], new Rectangle( 0, i, 465, 1 ), new Point(0,i));
			}
			canvas.bitmapData.unlock();
			
			if(baff.length>465){
				baff.splice(0,1);
			}
		}
	}
}
import flash.display.Graphics;
import flash.display.Shape;
import flash.events.Event;
import flash.geom.Point;


internal class PerceiveShape extends Shape
{
	private var seg:int = 4;
	private var counts:Vector.<Number>;
	
	public function PerceiveShape()
	{
		counts = new Vector.<Number>();
		for(var i:int=0; i<seg; i++)
		{
			counts.push( Math.random() );
		}

		draw();
	}
	
	
	public function start():void
	{
		
		addEventListener(Event.ENTER_FRAME, loop);
	}
	
	private function loop(e:Event):void
	{
		update();
		draw();
	}
	
	
	
	private function update():void
	{		
		for(var i:int=0; i<seg; i++)
		{
			counts[i] += 0.25;
		}
	}
	
	private function draw():void
	{
		var x0:Number = 0;
		var y0:Number = 0;
		
		var w:Number = 150;
		var h:Number = 150;
		var margin:Number = 25;
		var angle:Number = Math.PI / seg;
		var angle2:Number = angle * 2;
		var halfPI:Number = Math.PI / 2;
		
		var aPoints:Vector.<Point> = new Vector.<Point>();
		var cPoints:Vector.<Point> = new Vector.<Point>();
		
		var g:Graphics = graphics;
		g.clear();
		g.beginFill(0xFF0000);
		g.lineStyle(2,0xFFFFFF);
		g.moveTo(x0 + w-Math.sin(counts[0])*margin, y0);
		for (var i:uint = 1; i<=seg; i++)
		{
			var r:Number = i * angle2;
			
			var aPt:Point = new Point( (w - (Math.sin(counts[i-1])*margin))*Math.cos(r), (h-(Math.cos(counts[i-1])*margin)) *Math.sin(r));
			aPoints.push( aPt );
			
			var cPt:Point = new Point( aPt.x+ (w - (Math.sin(counts[i-1])*margin) )  *Math.tan(angle)*Math.cos(r-halfPI), aPt.y+   (h-(Math.cos(counts[i-1])*margin))   *Math.tan(angle)*Math.sin(r-halfPI) );
			cPoints.push( cPt );
			
			if(i!=seg){
				g.curveTo(cPt.x+x0, cPt.y+y0, aPt.x+x0, aPt.y+y0);
			}
			else
			{
				g.curveTo(cPt.x+x0, cPt.y+y0, x0 + w- Math.sin(counts[0])*margin , y0);				
			}
		}		
		g.endFill();
	}
	
}