forked from: 斜線のテスト

by ultranoir
♥0 | Line 63 | Modified 2010-09-29 17:32:31 | MIT License
play

ActionScript3 source code

/**
 * Copyright ultranoir ( http://wonderfl.net/user/ultranoir )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/prZz
 */

<?xml version="1.0" encoding="utf-8"?>
<!-- forked from kidaipu's 斜線のテスト -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" themeColor="#FFFFFF" borderColor="#FFFFFF" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#FFFFFF, #FFFFFF]">
<mx:UIComponent id="canvas" addedToStage="init(event)"
	width="100%" height="100%" x="5" y="0"  themeColor="#FFFFFF"/>

<mx:Script>
<![CDATA[
    //だめだこりゃ
	private var Color:uint = 0xff0099;
	private var Center:int = 250;
	private var R:int = 100;
	
	private var L:Shape;
	
	private function init(e:Event):void
	{
		//背面
		var bk:Shape = new Shape();
		bk.graphics.beginFill(brighten(Color), 1.0);
		bk.graphics.drawCircle(0,0,R+20);
		bk.graphics.endFill();
		bk.x = bk.y = Center;
		canvas.addChild(bk);
		
		//赤玉
		var s:Shape = new Shape();
		s.graphics.beginFill(Color, 1.0);
		s.graphics.drawCircle(0,0,R);
		s.graphics.endFill();
		s.x = s.y = Center;
		canvas.addChild(s);
		
		//斜線
		L = new Shape();
		canvas.addChild(L);
		
		//タイマー
		var t:Timer = new Timer(1, 0);
		t.addEventListener(TimerEvent.TIMER, loop);
		t.start();
		t.repeatCount
	}
	
	private function loop(e:TimerEvent):void
	{	
		var count:Number = e.target.currentCount / 200 - int(e.target.currentCount / 200);
		var angle:Number = 135 + 180*count;
		
		//クリア
		L.graphics.clear();
		
		//線
		var r:int = R + 3;
		L.graphics.lineStyle(30.0, brighten(Color), 1.0);
		
		var i:int;
		for(i = 0;i < 6;i++)
		{
			var angle2:Number = angle + 45 * i;
			if(angle2 >= 315) angle2 = angle2 - 315 + 135;
			L.graphics.moveTo(Center + r*Math.cos(angle2*Math.PI/180), Center + r*Math.sin(angle2*Math.PI/180));
			L.graphics.lineTo(Center + r*Math.cos((270 - angle2)*Math.PI/180), Center + r*Math.sin((270 - angle2)*Math.PI/180));
		}

		L.graphics.endFill();
		
	}
	
	//明るく
	private function brighten(color:uint):uint
	{
		var plus:int = 130;
		var red:int = (color & 0xff0000) >> 16;
		var green:int = (color & 0x00ff00) >> 8;
		var blue:int = (color & 0x0000ff) >> 0;
		red = (red + plus >= 255) ? 255 : red + plus;
		green = (green + plus >= 255) ? 255 : green + plus;
		blue = (blue + plus >= 255) ? 255 : blue + plus;
		return (red << 16) | (green << 8) | (blue << 0);
	}
	
]]>
</mx:Script>	
</mx:Application>