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: せまってくるドラ Ball

// forked from ll_koba_ll's 3D Ball
package
{

    import flash.display.*;
	import flash.events.Event;
    
    public class Ball3DTest extends MovieClip
    {
        public function Ball3DTest()
        {
			addEventListener (Event.ENTER_FRAME, enterFrameHandler);
        }
		private function enterFrameHandler (e:Event):void
		{
			var ball:Ball3D = new Ball3D();
            addChild(ball);
		}
    }
}


import flash.display.*;
import flash.events.*;
import flash.geom.*;

class Ball3D extends Sprite
{

    public function Ball3D()
    {
		addEventListener (Event.ADDED_TO_STAGE, init);
    }

    private function init(e:Event):void
    {
		removeEventListener (Event.ADDED_TO_STAGE, init);
		
		var tmpdora:Dora = new Dora();
		tmpdora.x = -tmpdora.width;
		tmpdora.y = -tmpdora.height;

        
		addChild(tmpdora);
		
		//動き
		var cx:Number = stage.stageWidth / 2;
		var cy:Number = 0;
		var fl:Number = 20;
		var _x:Number = Math.random () * 3200 - 1600;
		var _y:Number = Math.random () * 400 - 200;
		var _z:Number = 1000;
		var scale:Number = 0;
		addEventListener (Event.ENTER_FRAME, function ():void {
			
				_y = 600;
				_z -= 30;
				scale = fl / (fl + _z);
				tmpdora.x = _x * scale + cx;
				tmpdora.y = _y * scale + cy;
				tmpdora.scaleX = scale;
				tmpdora.scaleY = scale;
				if (_z<=0)
				{
					removeEventListener (Event.ENTER_FRAME, arguments.callee);
					removeChild(tmpdora);
				}
				
			}
		);
        
    }

}
import flash.display.*;
import flash.geom.*;

class Dora extends Sprite{
    public function Dora() { 
        var sp:Sprite = new Sprite(); 
        //sp.filters = [new GlowFilter(0xBB44BB,0.4,32,32)];
        addChild(sp);
        
        var head:Sprite = new Sprite();
        var w:Number = 94;
        var h:Number = 82;
        
        //頭を描く
        head.graphics.beginFill(0xffffff * Math.random()); 
        head.graphics.moveTo(-w/2, 0);
        head.graphics.curveTo(-w/2+2, -h/2+1, 0, -h/2);
        head.graphics.curveTo(w/2-2, -h/2+1, w/2, 0);
        head.graphics.curveTo(w/2-1, h/2-1, 0, h/2);
        head.graphics.curveTo(-w/2+1, h/2-1, -w/2, 0);  
        head.graphics.endFill();
        sp.addChild(head);
        
        //顔の輪郭を描く
        var face:Sprite = new Sprite();
        face.y = 7;
        w = 86;
        h = 67;
        face.graphics.beginFill(0x000000); 
        face.graphics.moveTo(-w/2, 0);
        face.graphics.curveTo(-w/2+2, -h/2+1, 0, -h/2);
        face.graphics.curveTo(w/2-2, -h/2+1, w/2, 0);
        face.graphics.curveTo(w/2-1, h/2-1, 0, h/2);
        face.graphics.curveTo( -w/2+1, h/2 - 1, -w / 2, 0);
        sp.addChild(face);
        
        //目を描く
        var lefteye:Sprite = new Sprite();
        lefteye.x = -17.5;
        lefteye.y = -35;
        drawOval(lefteye, 17, 19);
        sp.addChild(lefteye);
        
        var eye1:Sprite = new Sprite();
        eye1.graphics.beginFill(0x000000);
        eye1.graphics.drawEllipse(0, 0, 8, 2);
        eye1.x = -14;
        eye1.y = -27;
        sp.addChild(eye1);
        
        var righteye:Sprite = new Sprite();
        righteye.x = 0.5;
        righteye.y = -35;
        drawOval(righteye, 17, 19);
        sp.addChild(righteye);
        
        var eye2:Sprite = new Sprite();
        eye2.graphics.beginFill(0x000000);
        eye2.graphics.drawEllipse(0, 0, 8, 2);
        eye2.x = 6;
        eye2.y = -27;
        sp.addChild(eye2);
        
        //鼻を描く
        var nose:Sprite = new Sprite();
        nose.x = -5.5;
        nose.y = -20;
        drawOval(nose, 11, 9);
        sp.addChild(nose);
        
        //鼻下を描く
        var noseline:Sprite = new Sprite();
        noseline.graphics.lineStyle(1, 0xFFFFFF);
        noseline.graphics.moveTo( -0.5, -18);
        noseline.graphics.lineTo( -0.5, 24);
        sp.addChild(noseline);
        
        //口を描く
        var mouse:Sprite = new Sprite();
        mouse.graphics.lineStyle(1, 0xFFFFFF);
        mouse.graphics.moveTo( -31, 6);
        mouse.graphics.curveTo( -24, 24, 0, 24);
        mouse.graphics.curveTo(24, 24, 31, 6);
        sp.addChild(mouse);
        
        //ヒゲを描く
        var higeR:Sprite = new Sprite();
        higeR.graphics.lineStyle(1, 0xFFFFFF);
        higeR.graphics.moveTo( -16, -13);
        higeR.graphics.lineTo( -35, -16);
        higeR.graphics.moveTo( -17, -9);
        higeR.graphics.lineTo( -36, -9);
        higeR.graphics.moveTo( -16, -5);
        higeR.graphics.lineTo( -35, -2);
        sp.addChild(higeR);
        
        var higeL:Sprite = new Sprite();
        higeL.graphics.lineStyle(1, 0xFFFFFF);
        higeL.graphics.moveTo( 16, -13);
        higeL.graphics.lineTo( 35, -16);
        higeL.graphics.moveTo( 17, -9);
        higeL.graphics.lineTo( 36, -9);
        higeL.graphics.moveTo( 16, -5);
        higeL.graphics.lineTo( 35, -2);
        sp.addChild(higeL);

        var bmpd:BitmapData = new BitmapData(width, height, true, 0x00ffffff);
        var m:Matrix = new Matrix();
        m.scale(1, 1);
        m.translate(width/2, height/2);
        
        bmpd.draw(this, m);
        var b:Bitmap = addChild(new Bitmap(bmpd)) as Bitmap;
        removeChild(sp);
        sp = null;
        b.scaleX = 4;
        b.scaleY = 4
        b.x -= width/2;
        b.y -= height/2;
        
    }
    
    private function drawOval(s:Sprite, w:Number, h:Number):void {
        s.graphics.beginFill(0xFFFFFF, 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();
    }
    
}

//参考サイト http://www.mdn.co.jp/content/view/1138/88/