/**
* Copyright Tamanegi_kenshi ( http://wonderfl.net/user/Tamanegi_kenshi )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/z5Wo
*/
package{
import flash.display.Sprite;
import flash.events.*;
import flash.ui.Mouse;
import caurina.transitions.Tweener;
[SWF(backgroundColor=0x000000)]
public class Test extends Sprite{
private var sprite:Sprite;
private var vr:Number = 0.05;
private var cos:Number = Math.cos(vr);
private var sin:Number = Math.sin(vr);
private var centerX:Number = 465 / 2;
private var centerY:Number = 465 / 2;
private var spriteArr:Array = [];
private var num:Number = 0;
public function Test(){
init();
}//Test
private function init():void{
Mouse.hide();
for(var i:int = 0; i < 1; i++){
sprite = new Sprite();
sprite.x = Math.random() * 465;
sprite.y = Math.random() * 465;
spriteArr.push(sprite);
// stage.addEventListener(MouseEvent.CLICK, onClick);
sprite.addEventListener(Event.ENTER_FRAME, onEnter);
}
}//init
private function onClick(event:MouseEvent):void{
onBallMove();
}
private function onBallMove():void{
//for(var i:int = 0; i < 3; i++){
var ball:Ball = new Ball();
addChild(ball);
ball.x = spriteArr[0].x;
ball.y = spriteArr[0].y;
// }
}
private function onEnter(event:Event):void{
var x1:Number = event.target.x - centerX;
var y1:Number = event.target.y - centerY;
var x2:Number = cos * x1 - sin * y1;
var y2:Number = cos * y1 + sin * x1;
event.target.x = x2 + centerX;
event.target.y = y2 + centerY;
onBallMove();
}
}//class
}
import flash.display.MovieClip;
import flash.media.Sound;//package
/*
package {
import flash.geom.ColorTransform;
import flash.events.*;
import flash.display.Sprite;
import flash.events.TimerEvent;
import flash.utils.Timer;
import gs.TweenMax;
import gs.easing.*;
import flash.display.Bitmap;
import flash.display.BitmapData;
public class FlashTest extends Sprite {
//星を配置するSprite(実際に表示はさせない)
private var temp:Sprite;
//ステージと同じ大きさで黒色のビットマップデータ
private var bmd:BitmapData;
//ビットマップデータを関連付けてビットマップを表示
private var bmp:Bitmap;
//色を消していくためのColorTransform設定
private var ctf:ColorTransform;
public function FlashTest() {
init();
}
private function init():void{
temp = new Sprite();
//ステージと同じ大きさで黒色のビットマップデータ
bmd = new BitmapData(400, 300, false, 0x00000000);
//ビットマップデータを関連付けてビットマップを表示
bmp = new Bitmap(bmd);
addChild(bmp);
//色を消していくためのColorTransform設定
ctf = new ColorTransform(0.9, 0.9, 0.92);
//マウスを動かすと星をつくるイベント追加
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
//毎フレーム実行されるイベント追加
addEventListener(Event.ENTER_FRAME, loop);
}//init
private function onMove(e:MouseEvent):void {
//星作成
var star:Ball = new Ball();
//星の初期位置
star.x = mouseX;
star.y = mouseY;
//Spriteに星を追加
temp.addChild( star );
//星の目標地点設定
var tx:Number = star.x + Math.random() * 50 - 25;
var ty:Number = star.y + Math.random() * 50 - 25;
//目標角度設定
var rot:Number = Math.random() * 360 - 180;
//トゥイーン設定
TweenMax.to(star, 2, { //星を2秒間で
alpha: 0, x: tx, y: ty, //透明度0、位置を目標地点に
scaleX: 2, scaleY: 2, //大きさを4倍に
rotation: rot, //角度を目標角度に
//グローフィルターをかける
glowFilter:{color:0xff00ff, alpha:1, blurX:10, blurY:10},
onComplete: removeStar, //トゥイーンが終わったら
onCompleteParams: [star]} //removeStar実行
);
function removeStar(star:Ball):void {
//starを削除
temp.removeChild(star);
}
}
private function loop(e:Event):void {
//ビットマップデータにtempを写して表示させる
bmd.draw(temp);
//ColorTransformの赤の乗数値を変化(0.8~0.9でループ)
// (ctf.redMultiplier > 0.9)? ctf.redMultiplier = 0.8 : ctf.redMultiplier += 0.01;
//ビットマップデータにカラー変換を適用
bmd.colorTransform(bmd.rect, ctf);
}
}
}
private function init():void{
stage.addEventListener(MouseEvent.CLICK, onMove);
}
private function onMove(event:MouseEvent):void{
var ball:Ball = new Ball();
addChild(ball);
ball.x = mouseX;
ball.y = mouseY;
TweenMax.to(ball, 1, {x:5,scsleX:4, scaleY:4, alpha:1, onComplete:remo});
function remo():void{
removeChild(ball);
}
}
}
}
*/
import flash.display.Sprite;
import flash.events.*;
//import gs.TweenMax;
//import caurina.transitions.Tweener;
class Ball extends Sprite{
private var rote:Number;
private var mokuX:Number;
private var mokuY:Number;
private var scal:int;
// private var mokuX:Number;
// private var mokuY:Number;
function Ball(){
init();
}
private function init():void{
var bal:Sprite = new Sprite();
var color:uint = Math.random() * 0xffffff;
bal.graphics.beginFill(color);
bal.graphics.lineStyle(0);
bal.graphics.moveTo(0, -3);
bal.graphics.curveTo(0, 0, 3, 0);
bal.graphics.curveTo(0, 0, 0, 3);
bal.graphics.curveTo(0, 0, -3, 0);
bal.graphics.curveTo(0, 0, 0, -3);
//bal.graphics.beginFill(color);
//bal.graphics.drawRect(0, 0, 10, 10);
bal.graphics.endFill();
rote = Math.random() * 720 - 360;
mokuX = Math.random() * 930 - 465;
mokuY = Math.random() * 930 - 465;
scal = Math.floor(Math.random() * 20);
addChild(bal);
bal.addEventListener(Event.ENTER_FRAME, balEnter);
//Tweener.addTween(bal, { scaleX:scal, scaleY:scal, rotation:rote, alpha:0, time:3, onComplete:removeBall});
///function removeBall():void{
// this.parent.removeChild(bal);
// }
}
public function balEnter(event:Event):void{
var vrote:Number = (rote - event.target.rotation) * 0.1;
event.target.rotation += vrote;
var valpha:Number = (0 - event.target.alpha) * 0.1;
event.target.alpha += valpha;
var vsX:Number = (scal - event.target.scaleX) * 0.1;
var vxY:Number = (scal - event.target.scaleY) * 0.4;
event.target.scaleX += vsX;
event.target.scaleY += vxY;
if(event.target.scaleX >= scal - 2 || event.target.alpha < 0.01){
removeChild(this);
}
}
}