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

ひだまりスケッチ ほしみっつ の星

ひだまりの星
@author Hiiragi

「超☆ひだまつり -2~4時間テレビ-」に向けて作ってみました。嘘です。
なんか色合いというかエフェクトというか、いろいろ微妙。

ゆのっちもかわいいけど、なづなちゃんもかわいいよね。

#もし版権的にアウトであれば、削除いたします。
Get Adobe Flash player
by Hiiragi 10 Feb 2010
package  
{
	import flash.display.Sprite;
	import flash.events.Event;
	
	/**
	 * ひだまりの星
	 * @author Hiiragi
	 * 
	 * 「超☆ひだまつり -2~4時間テレビ-」に向けて作ってみました。嘘です。
	 * なんか色合いというかエフェクトというか、いろいろ微妙。
	 * 
	 * ゆのっちもかわいいけど、なづなちゃんもかわいいよね。
	 * 
	 * #もし版権的にアウトであれば、削除いたします。
	 */
	
	[SWF(width = 465, height = 465, frameRate = 30, backgroundColor = 0xffd5f7)]
	public class HidamariStarTest extends Sprite
	{
		private var _hidamariStar:HidamariStar;
		
		public function HidamariStarTest() 
		{
			_hidamariStar = new HidamariStar(150);
			_hidamariStar.x = this.stage.stageWidth / 2;
			_hidamariStar.y = this.stage.stageHeight / 2;
			this.addChild(_hidamariStar);
			
			this.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler);
		}
		
		private function onEnterFrameHandler(e:Event):void 
		{
			_hidamariStar.rotation += 1;
		}
	}
}


import flash.display.GradientType;
import flash.display.Graphics;
import flash.display.Sprite;
import flash.filters.BevelFilter;
import flash.filters.BitmapFilterType;
import flash.geom.Matrix;

class HidamariStar extends Sprite
{
	private var _cx:Number;
	private var _cy:Number;
	private var _radius:Number;
	private var _insideRatio:Number;
	
	private var _secondStar:Sprite;
	private var _centerStar:Sprite;
	
	private var _secondStarBevelFilter:BevelFilter;
	private var _centerStarBevelFilter:BevelFilter;
	
	public function HidamariStar(radius:Number,
								 cx:Number = 0, 
								 cy:Number = 0, 
								 insideRatio:Number = 0.5) 
	{
		_radius = radius;
		_cx = cx;
		_cy = cy;
		_insideRatio = insideRatio;
		
		_secondStar = new Sprite();
		_centerStar = new Sprite();
		this.addChild(_secondStar);
		this.addChild(_centerStar);
		
		_secondStarBevelFilter = new BevelFilter(2, -45, 0x996666, 1, 0, .3, 2, 2, 1, 2, BitmapFilterType.OUTER, false);
		_centerStarBevelFilter = new BevelFilter(2, -45, 0x996666, 1, 0, .5, 2, 2, 1, 2, BitmapFilterType.OUTER, false);
		_secondStar.filters = [_secondStarBevelFilter];
		_centerStar.filters = [_centerStarBevelFilter];
		
		draw();
	}
	
	public function draw():void 
	{
		var mtx:Matrix = new Matrix();
		
		var g:Graphics = this.graphics;
		g.clear();
		
		g.beginFill(0xFFFFFF);
		g.lineStyle(10, 0xFFFFFF);
		drawStar(g, _radius);
		g.endFill();
		
		g = _secondStar.graphics;
		g.clear();
		mtx.createGradientBox(_radius * 2, _radius * 2, -Math.PI / 4, -_cx -_radius, -_cy - _radius);
		g.beginGradientFill(GradientType.LINEAR, [0xf0ac96, 0x780100], [1, 1], [0, 255], mtx);
		drawStar(g, _radius * .95);
		g.endFill();
		
		g = _centerStar.graphics;
		g.clear();
		mtx.createGradientBox(_radius * 2, _radius * 2, -Math.PI / 4, -_cx -_radius, -_cy - _radius);
		g.beginGradientFill(GradientType.LINEAR, [0xfdf9fa, 0xfdae10], [1, 1], [0, 255], mtx);
		drawStar(g, _radius * 0.8);
		g.endFill();
		
	}
	
	private function drawStar(g:Graphics, radius:Number):void
	{
		g.moveTo(_cx, _cy - radius);
		
		var diffRad:Number = Math.PI * 2 / 10;
		var rad:Number = -Math.PI / 2;
		var tempRadius:Number;
		
		for (var i:int = 1; i <= 10; i++)
		{
			rad += diffRad;
			tempRadius = (i % 2 == 1) ? tempRadius = radius * _insideRatio : tempRadius = radius;
			g.lineTo(Math.cos(rad) * tempRadius + _cx, Math.sin(rad) * tempRadius + _cy);
		}
	}
	
	public function get radius():Number { return _radius; }
	
	public function set radius(value:Number):void 
	{
		_radius = value;
		draw();
	}
	
	public function get insideRatio():Number { return _insideRatio; }
	
	public function set insideRatio(value:Number):void 
	{
		_insideRatio = value;
		draw();
	}
	
}