[練習]
♥0 |
Line 94 |
Modified 2010-09-03 04:26:06 |
MIT License
archived:2017-03-20 12:09:19
ActionScript3 source code
/**
* 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/8iXq
*/
package {
import flash.display.Bitmap;
import flash.display.AVM1Movie;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.display.StageScaleMode;
import flash.display.StageAlign;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.ui.Mouse;
[SWF(backgroundColor = 0x000000)]
public class FlashTest extends Sprite {
private var isFire:Boolean = false;
private var rousoku:Rousoku;
public function FlashTest() {
init();
}
private function init():void{
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
rousoku = new Rousoku(30, 150);
addChild(rousoku);
rousoku.x = 232;
rousoku.y = 320;
rousoku.buttonMode = true;
rousoku.alpha = 0.1;
rousoku.addEventListener(MouseEvent.CLICK, onClick);
//stage.addEventListener(Event.ENTER_FRAME, onEn);
}
private function onClick(e:MouseEvent):void{
if(isFire == false){
e.target.addEventListener(Event.ENTER_FRAME, onFire);
e.target.alpha = 0.1;
isFire = true;
}else{
isFire = false;
e.target.alpha = 1;
}
}
private function onFire(e:Event):void{
if(isFire == false){
var ball:Ball = new Ball(mouseX, mouseY);
e.target.addChild(ball);
ball.x = 0;
ball.y = -85;
// rousokuAlpha();
}
}
// private function rousokuAlpha():void{
// var valpha:Number = (1 - rousoku.alpha) * 0.1;
// rousoku.alpha += valpha;
// }
}
}
import flash.display.GradientType;
import flash.geom.Matrix;
import flash.filters.BlurFilter;
import flash.display.Sprite;
import flash.events.Event;
import flash.display.BlendMode;
class Ball extends Sprite{
private var angle:Number = -90;
private var radius:int = 15;
function Ball(mouseX:Number, mouseY:Number){
var color:Array = [0xffffff, 0x660000,Math.random() * 0xffffff];
var alpha:Array = [1, 1, 1];
var rotions:Array = [0, 200,255];
var matrix:Matrix = new Matrix();
matrix.createGradientBox(radius * 2, radius * 2, 0, - radius, -radius );
graphics.beginGradientFill(GradientType.RADIAL, color, alpha, rotions, matrix);
//graphics.beginFill(Math.random() * 0xffffff);
graphics.drawCircle(0, 0, radius);
graphics.endFill();
this.blendMode = BlendMode.ADD;
this.filters = [new BlurFilter(10, 10, 2)];
this.x = mouseX;
this.y = mouseY;
this.addEventListener(Event.ENTER_FRAME, ballEnter);
}
private function ballEnter(e:Event):void{
/*
angle += 5;
var radian:Number = angle * Math.PI / 180;
x = Math.cos(radian) * 50;
y = Math.sin(radian) * 50;
if(angle >= 360 - 90){
removeEventListener(Event.ENTER_FRAME, ballEnter);
parent.removeChild(this);
}
*/
this.y -= 5;
this.x += Math.random() * 1 - 0.5;
var vs:Number = (0 - this.scaleX) * 0.05;
this.scaleX += vs;
this.scaleY += vs;
if(this.scaleX <= 0.1){
removeEventListener(Event.ENTER_FRAME, ballEnter);
parent.removeChild(this);
}
}
}
import flash.display.Sprite;
import flash.filters.BlurFilter;
class Rousoku extends Sprite{
public function Rousoku(w:int, h:int){
graphics.beginFill(0xcccccc);
graphics.drawRect(-w / 2, -h / 2, w, h);
graphics.endFill();
this.filters = [new BlurFilter(4, 4, 1)];
}
}