forked from: 斜線のテスト
♥0 |
Line 63 |
Modified 2010-09-29 17:32:31 |
MIT License
archived:2017-03-20 13:12:42
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>