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 2011-5-23

花の中心の円をSpriteインスタンスのflowerとして、そこに花びらを角度をつけてくっつけていきました。花びらを表すShapeインスタンスをpetalとして楕円で作成しましたが、そのままだと基準点が左上隅なので、回転や移動がうまくできません。そこでSpriteインスタンスのbaseを作成し、そこにpetalをズラして置き、baseの方を移動・回転させました。

花を20個ランダムにstage上に置きました。
Get Adobe Flash player
by yasyasyas 23 May 2011
/**
 * Copyright yasyasyas ( http://wonderfl.net/user/yasyasyas )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/kuIG
 */

/*
花の中心の円をSpriteインスタンスのflowerとして、そこに花びらを角度をつけてくっつけていきました。花びらを表すShapeインスタンスをpetalとして楕円で作成しましたが、そのままだと基準点が左上隅なので、回転や移動がうまくできません。そこでSpriteインスタンスのbaseを作成し、そこにpetalをズラして置き、baseの方を移動・回転させました。

花を20個ランダムにstage上に置きました。

*/


package {
	import flash.display.*;
	import flash.geom.Point;
	
	public class DrawingFlowers extends Sprite {
		
		var num:int = 14; //花びらの数
		var deg:Number = 360 / num; //花びらの枚数にしたがって、花びら自体を回転させる角度
		var len:int = 20; //花の中心の円の半径
		var petalWidth:int = 60; //花びらの幅
		var petalHeight:int = 16; //花びらの高さ
		
		public function DrawingFlowers() {
                      
			for (var i:int = 0; i < 20; i++) {
				var flower:Sprite = new Sprite();
				addChild(flower);
				flower.graphics.lineStyle(5,0xFF9900);
				flower.graphics.beginFill(0xFFFF00);
				flower.graphics.drawCircle(0, 0, len);
				flower.graphics.endFill();
				var fx:Number = Math.random() * stage.stageWidth;
				var fy:Number = Math.random() * stage.stageHeight;
				flower.x = fx;
				flower.y = fy;
				
				var color:Number = Math.random() * 0xFFFFFF;
								
				for (var j:int = 0; j < num; j++) {
					var base:Sprite = new Sprite();
					flower.addChild(base);
					var petal:Shape = new Shape();
					base.addChild(petal);
					petal.graphics.lineStyle(1);
					petal.graphics.beginFill(color);
					petal.graphics.drawEllipse(0, -petalHeight/2, petalWidth, petalHeight);
					petal.graphics.endFill();
					
					var rad:Number = 2 * Math.PI / num;
					var pt:Point = Point.polar(len, rad * j); //花びらをつける位置の作成
					base.x = pt.x;
					base.y = pt.y;
					base.rotation = deg * j;
				}
			}
		}
	}
}