[Tweener]回る増える円
...
@author stenpel
クルクル回る円
クリックするたびに増える
♥0 |
Line 89 |
Modified 2010-05-20 02:55:46 |
MIT License
archived:2017-03-20 06:32:55
ActionScript3 source code
/**
* Copyright stenpel ( http://wonderfl.net/user/stenpel )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/66ui
*/
package
{
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import caurina.transitions.Tweener;
/**
* ...
* @author stenpel
* クルクル回る円
* クリックするたびに増える
*/
public class Main extends Sprite
{
private var arrayObj:Array;
private var container:Sprite;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
initObject(2);
stage.addEventListener(MouseEvent.CLICK, onMouseClick);
}
private function initObject(n:Number = 10):void {
trace("<--initObject-->");
var r:uint = 100;
var radian:Number = 2 * Math.PI / n;
arrayObj = new Array();
container = new Sprite();
for (var i:int = 0; i < n; i++) {
var sp:Shape = new Shape();
sp.graphics.beginFill(0);
sp.graphics.drawCircle(0, 0, 10);
sp.graphics.endFill();
arrayObj.push(sp);
container.addChild(sp);
sp.x = r * Math.sin(i * radian);
sp.y = r * Math.cos(i * radian);
}
container.addEventListener(Event.ADDED_TO_STAGE, onAddStageContainer);
addChild(container);
}
private function onAddStageContainer(e:Event):void
{
trace("<--onAddStageContainer-->");
var sp:Sprite = e.currentTarget as Sprite;
sp.removeEventListener(Event.ADDED_TO_STAGE, onAddStageContainer);
sp.x = stage.stageWidth / 2;
sp.y = stage.stageHeight / 2;
sp.addEventListener(Event.ENTER_FRAME, loop);
}
private function loop(e:Event):void
{
var sp:Sprite = e.currentTarget as Sprite;
sp.rotation += 3;
}
private function onMouseClick(e:MouseEvent):void
{
trace("<--onMouseClick-->");
for (var i:int = 0; i < arrayObj.length; i++) {
Tweener.addTween(arrayObj[i], { x:0, y:0, time:.9, transition:"easeNone"} );
}
afterClick();
}
private function afterClick():void
{
trace("<--afterClick-->");
var shape:Shape = new Shape();
shape.graphics.beginFill(0);
shape.graphics.drawCircle(0, 0, 10);
shape.graphics.endFill();
arrayObj.push(shape);
ReassignObject();
}
private function ReassignObject():void {
trace("<--ReassignObject-->");
var n:uint = arrayObj.length;
var l:uint = 100;
var radian:Number = 2 * Math.PI / n;
container.addChild(arrayObj[arrayObj.length-1]);
for (var i:int = 0; i < n; i++)
{
var obj:Shape = arrayObj[i] as Shape;
var posX:Number = l * Math.sin(i * radian);
var posY:Number = l * Math.cos(i * radian);
Tweener.addTween(obj, { x:posX, y:posY, time:.4, delay:.9, transition:"easeNone" } );
}
}
}
}