forked from: Star Exposure
forked from Star Exposure (diff: 1)
ActionScript3 source code
/**
* Copyright megumilk.1214 ( http://wonderfl.net/user/megumilk.1214 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/xtir
*/
// forked from butchi's Star Exposure
package
{
import flash.display.Sprite;
import flash.events.Event;
[SWF(backgroundColor ="#000000", width = "465", height = "465", frameRate = "30")]
public class Main extends Sprite
{
private var stageWidth:Number = 465;
private var stageHeight:Number = 465;
private var rot:Number = 0; // 回転の角度(rad)
private var star:Vector.<Sprite>; // 星のSprite
private var rad:Vector.<Number>; // 星の中心からの距離
private var theta:Vector.<Number>; // 星の初期角度(rad)
private var size:Vector.<Number>; // 星の大きさ
private var color:Vector.<uint>; // 星の色
private var starNum:int = 500; // 星の個数
public function Main()
{
var bg:Sprite = new Sprite(); // メタデータタグでなぜか背景色を変えられなかったので黒の矩形を描画
bg.graphics.beginFill(0x000000);
bg.graphics.drawRect(0,0,stageWidth,stageHeight);
addChild(bg);
star = new Vector.<Sprite>(starNum);
size = new Vector.<Number>(starNum);
rad = new Vector.<Number>(starNum);
color = new Vector.<uint>(starNum);
theta = new Vector.<Number>(starNum);
for (var i_counter:uint=0; i_counter<starNum; i_counter++) {
star[i_counter] = new Sprite();
star[i_counter].x = stageWidth / 2;
star[i_counter].y = stageHeight / 2;
size[i_counter] = 2*Math.random();
color[i_counter] = 0xFFFFFF - ((96 * Math.random())<<16) - ((96 * Math.random())<<8) - (96 * Math.random()); // 少し明るめのランダム色
rad[i_counter] = stageWidth*1.5/2*Math.random();
theta[i_counter] = 2*Math.PI*Math.random();
//star[i_counter].graphics.lineStyle(0);
//star[i_counter].graphics.beginFill(color[i_counter]);
//star[i_counter].graphics.drawCircle(rad[i_counter]*Math.cos(rot-theta[i_counter]),rad[i_counter]*Math.sin(rot-theta[i_counter]), size[i_counter]/2);
//star[i_counter].graphics.endFill();
star[i_counter].graphics.lineStyle(size[i_counter],color[i_counter]);
star[i_counter].graphics.moveTo(rad[i_counter]*Math.cos(rot-theta[i_counter]),rad[i_counter]*Math.sin(rot-theta[i_counter]));
addChild(star[i_counter]);
}
addEventListener(Event.ENTER_FRAME, draw);
}
public function draw(evt:Event):void {
for (var i_counter:uint=0; i_counter<starNum; i_counter++) {
star[i_counter].graphics.lineTo(rad[i_counter]*Math.cos(rot-theta[i_counter]),rad[i_counter]*Math.sin(rot-theta[i_counter]));
}
rot += 0.0001;
return;
}
}
}
