forked from: forked from: forked from: クルクル
flashとおやつの会の宿題:第一回02
♥0 |
Line 54 |
Modified 2010-04-29 23:31:28 |
MIT License
archived:2017-03-30 08:01:18
ActionScript3 source code
/**
* Copyright umhr ( http://wonderfl.net/user/umhr )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/c645
*/
// forked from mikelito33bdx's forked from: forked from: クルクル
// forked from umhr's forked from: クルクル
// forked from mikelito33bdx's クルクル
//flashとおやつの会の宿題:第一回02
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
/**
* ...
* @author mikelito33bdx
*/
public class Main extends Sprite {
private var _btn:Sprite;
private var _circles:Array;
private var _rotations:Array;
public function Main():void {
//_circles = new Array();と同じ意味。
//こちらの方が処理が軽いらしい
_circles = [];
_rotations = [];
//ボタン用テキスト
var tf:TextField = new TextField();
tf.text = "CLICK";
tf.textColor = 0x000000;
tf.selectable = false;
tf.x = stage.stageWidth / 2 - 20;
tf.y = stage.stageHeight / 2 - 10;
addChild(tf);
//ボタン
_btn = new Sprite();
_btn.graphics.beginFill(0x000000, 0.5);
_btn.graphics.drawCircle(stage.stageWidth / 2, stage.stageHeight / 2, 30);
_btn.graphics.endFill();
_btn.buttonMode = true;
addChild(_btn);
//クリックで円を描く
_btn.addEventListener(MouseEvent.CLICK, onClick);
this.addEventListener(Event.ENTER_FRAME, onEnter);
}
private function onClick(e:MouseEvent):void {
var myColor:Number = Math.random();
var myAlpha:Number = Math.random()*0.5 + 0.3;
//circleの描画位置を修正
var myPosX:Number = Math.random() * stage.stageWidth - Math.random() * stage.stageWidth / 2;
var myPosY:Number = Math.random() * stage.stageHeight - Math.random() * stage.stageHeight / 2;
var circle:Sprite = new Sprite();
circle.graphics.beginFill(myColor * 0xFFFFFF, myAlpha);
circle.graphics.drawCircle(myPosX, myPosY, 10);
circle.graphics.endFill();
circle.x = stage.stageWidth / 2;
circle.y = stage.stageHeight / 2;
//一番奥にaddChildする
this.addChildAt(circle,0);
//SpriteをArrayに入れる。
_circles.push(circle);
//一回のEnterFrameあたりの回転角度も入れる
_rotations.push(Math.random());
}
private function onEnter(e:Event):void {
var n:int = _circles.length;
//大きさを徐々に
var _myScale:Number = Math.random()*0.001;
for (var i:int = 0; i < n; i++ ) {
_circles[i].rotation += _rotations[i];
_circles[i].scaleX += _myScale;
_circles[i].scaleY += _myScale;
//_btnを常に一番手前に表示
//this.setChildIndex(_btn, n);
}
}
}
}