forked from: 騒がしい青 ぼけた赤

by kinoppy
♥0 | Line 47 | Modified 2012-02-03 12:56:25 | MIT License
play

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;
       }
       
    }