forked from: 騒がしい青 ぼけた赤
♥0 |
Line 47 |
Modified 2012-02-03 12:56:25 |
MIT License
archived:2017-03-20 05:43:55
ActionScript3 source code
/**
* Copyright kinoppy ( http://wonderfl.net/user/kinoppy )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/vh2x
*/
// forked from lw--lx's 騒がしい青 ぼけた赤
/*
am3:12
う~~~~んものたりないな
光らせてみようかglowFilterも覚える
am3:28
かからない...どゆこっちゃ
ブラーはかかる。粒が小さすぎるのかな
am3:38
うーんbitmapにフィルタかけるのはちょっとむつかしーかな
なんかwidth,heightからはみでたとこきれてる気が きのせい?
次はフィルタ練習だ。shapeにかけてみよ おわり
*/
package {
import flash.filters.*;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import caurina.transitions.Tweener;
import net.hires.debug.Stats;
[SWF(frameRate=60)]
public class Main extends Sprite {
public function Main() {
//(W`´)X--【黒いのをしく】
var bmpD:BitmapData= new BitmapData(465,465,false,0x00000000);
var yuka:Bitmap = new Bitmap(bmpD);//黒い床
addChild(yuka);
addChild(new Stats());
//===========================//
//new BitmapData(10,10,true,0x00000000)
//と第3引数trueにして色を0x00000000にすると透明なbitmapができる
//なんに使うんだろ。くわしくないんでわからん。
//黒くしたはいいけどこのあと考えてなかった。
//Tweenerが使えるらしいからimportしてみるか。
//なんかこのエディタ Ctrl-XカットはできるけどCtrl-Cコピーができない
//===========================//
//(W`´)X--【赤いの大量にTweenしてみよ】
//Tweenerだとおもいのかな。それを確かめるためのStatsか
for(var i:int=0;i<150;i++){
var bmpD2:BitmapData= new BitmapData((i*0.02+1),(i*0.02+1),false,0x00ff0000)
var bmpRed:Bitmap= new Bitmap(bmpD2);
var blur:BlurFilter = new BlurFilter();
blur.blurX =3//*Math.random();//水平方向のぼかし
blur.blurY = 3//*Math.random();//垂直方向のぼかし
blur.quality = BitmapFilterQuality.MEDIUM;
//へ~ Array型のインスタンスじゃないとだめなんだ
bmpRed.x=i*10
addChild(bmpRed);
bmpRed.filters=[blur];//配列としてわたせばオッケーね
tweenSuru(bmpRed);//四角ビュンビュン関数
//丸もおいてみる。四角の半分の数にしよう
if(i%2==0){
//できたてほやほやのMaruTsukuruクラスで、まるつくる
// var glow:GlowFilter= new GlowFilter(0x0000ff, 1, 30, 30, 5, 3, true, true);
var maru:Bitmap= MaruTsukuru.maru(i*0.03+1)
//maru.filters=[blur]
addChild(maru)
//..お!できた!でもdrawしたshapeは透過されないんだ...
//そっか、こんなときにBitmapDataの第3引数か
//きたああああああ!なるほどね!
tweenSuru(maru)//まるもビュンビュンしてみよう
}
}
}
//(W`´)X--【赤い四角ステージ範囲内でビュンビュン】
private function tweenSuru(bmp:Bitmap):void{
var posX:Number = Math.random()*(stage.stageWidth-bmp.width)
var posY:Number = Math.random()*(stage.stageHeight-bmp.height)
var speed:Number = Math.random()*0.3+0.2
var alp:Number = 1-Math.random()
Tweener.addTween(bmp,{x:posX,y:posY,time:speed,/*alpha:alp,*/onComplete:function():void{
posX= Math.random()*stage.stageWidth+bmp.width
posY= Math.random()*stage.stageHeight-bmp.height
speed= Math.random()*0.2+0.3
alp = 1-Math.random()
Tweener.addTween(bmp,{x:posX,y:posY,time:speed,/*alpha:alp,*/onComplete:function():void{
tweenSuru(bmp)
}});
}});
}
}//Main
}//package
import flash.display.BitmapData;
import flash.display.Shape;
import flash.display.Bitmap;
//(W`´)X--【インナークラスってはじめてなんだ。どうやるのかな】
//簡単にまるいbitmapを作成するクラスをつくろう。
//packageの外にかかなきゃだめなんだ
//エラーでるな...書き方が変みたい。???
//ばか!Classじゃねえclassだ
//クラスメソッド?実行すると丸をつくって返すクラスにしたい。
//引数は(hankei,speed)
class MaruTsukuru{
//staticつけるとインスタンス作らなくても関数を実行できるんだっけ?
public static function maru(hankei:Number,speed:Number=0):Bitmap{
var shp:Shape = new Shape();
shp.graphics.beginFill(0x0000ff);
shp.graphics.drawCircle(hankei,hankei,hankei)
shp.graphics.endFill();
//stage.addChild(shp);
//ここでいうthisはビットマップ?わからん
//ドキュメントクラスの場合そのクラスインスタンス自身=root1
//return shp; //returnするのはBitmapだから...
var bmpD:BitmapData = new BitmapData(hankei*2,hankei*2,true,0x00000000);
var bmp:Bitmap= new Bitmap(bmpD);
//器作った ここにシェイプをdraw おとといやったやつだな
bmp.bitmapData.draw(shp);
return bmp;
}
}