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

Tiling smile

// forked from chimanaco's smile
// forked from chabudai's doraを描いてみた
package {
	import flash.display.Sprite;
	import flash.geom.ColorTransform;
	import caurina.transitions.Tweener;
	
	[SWF(width="465", height="465", backgroundColor="0x000000", frameRate="30")]  
	
	public class TilingSmile extends Sprite {
		private var smile:Smile;
		private var _centerX:Number = stage.stageWidth / 2;
		private var _centerY:Number = stage.stageHeight / 2;
		private var _x:Number = 50;
		private var _y:Number = 50;
		private var _r:Number = 25;
		private var _num:int = 10;
		private var _alpha:int = 10;
		private var _dc:Number = 0;
		private var _sc:Number = .1;
		
		public function TilingSmile() {
			for (var i:int = 0; i < _num; i++) {
				var color:ColorTransform = new ColorTransform();
				color.redMultiplier = _dc + _sc * i;
				for (var j:int = 0; j < _num; j++) {
					color.greenMultiplier = _dc + _sc * j;
					smile = new Smile( -_r, -_r,  _r);
					smile.scaleX = smile.scaleY = 0.1;
					smile.transform.colorTransform = color;
					addChild(smile);
					Tweener.addTween(smile, { x:_x * j, y:_y * i, scaleY:1, scaleX:1, time:1, delay:0.1 * i * j, transition:"easeOutBounce" } );
				}
			}
		}
	}
}

import flash.display.Sprite;
class Smile extends Sprite	{
	private var sp:Sprite;
	private var centerX:Number;
	private var centerY:Number;
	private var defSize:Number = 200;
	private var color:int = 0x000000;
	
	public function Smile(centerX:Number, centerY:Number, r:Number = 200, alpha:Number = 1 , fcolor:int = 0xFFFF00) {
		sp = new Sprite();
		sp.x = centerX;
		sp.y = centerY;
			
		var face:Sprite = new Sprite();
		face.graphics.beginFill(fcolor); 
		face.graphics.drawCircle( 0, 0, defSize);
		face.graphics.endFill();
			
		var lefteye:Sprite = new Sprite();
		lefteye.x = -85;
		lefteye.y = -85;
		drawOval(lefteye, 35, 70);

		var righteye:Sprite = new Sprite();
		righteye.x = 55;
		righteye.y = -85;
		drawOval(righteye, 35, 70);

		var mouse:Sprite = new Sprite();
		mouse.graphics.lineStyle(12, color);
		mouse.graphics.moveTo( -131, 45);
		mouse.graphics.curveTo( -84, 130, 0, 130);
		mouse.graphics.curveTo(84, 130, 131, 45);
			
		var leftcheek:Sprite = new Sprite();
		leftcheek.x = -120;
		leftcheek.y = 27;
		drawOval(leftcheek, 15, 40);
		leftcheek.rotation = 50;
			
		var rightcheek:Sprite = new Sprite();
		rightcheek.x = 113;
		rightcheek.y = 37;
		drawOval(rightcheek, 15, 40);
		rightcheek.rotation = -50;
			
		sp.addChild(face);
		sp.addChild(lefteye);
		sp.addChild(righteye);
		sp.addChild(mouse);
		sp.addChild(leftcheek);
		sp.addChild(rightcheek);		
		addChild(sp);
		
		//custom
		sp.scaleX = sp.scaleY =  r / defSize ;
		sp.alpha = alpha;
	}
		
	private function drawOval(s:Sprite, w:Number, h:Number):void {
		s.graphics.beginFill(color, 100); 
		s.graphics.moveTo(0, h/2);
		s.graphics.curveTo(0.5, 0.5, w/2, 0);
		s.graphics.curveTo(w-0.5, 0.5, w, h/2);
		s.graphics.curveTo(w-0.5, h-0.5, w/2, h);
		s.graphics.curveTo(0.5, h-0.5, 0, h/2);	
		s.graphics.endFill();
	}	
}