○んが○本むかしばな○風の雲

by sinketu forked from 雲(静止画) (diff: 92)
forked from
* http://wonderfl.net/c/vPrg
* 重い・・・
♥0 | Line 49 | Modified 2010-08-16 21:15:12 | MIT License
play

ActionScript3 source code

/**
 * Copyright sinketu ( http://wonderfl.net/user/sinketu )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/pXF2
 */

/*
 * forked from
 * http://wonderfl.net/c/vPrg
 * 重い・・・
*/
package {
    import caurina.transitions.properties.ColorShortcuts;
    import caurina.transitions.Tweener;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.geom.Point;
    import net.hires.debug.Stats;
    [SWF(width="465", height="465",backgroundColor=0x00000000)]
    public class Main extends Sprite
    {
        private var _bitmap:BitmapData;
        private var _offset:Array=new Array();
        private var _speed:Array=new Array();
        private var _oct:Number = 4;
        private var _seed:Number;
        public function Main()
        {
            ColorShortcuts.init();           
             Wonderfl.capture_delay(9);
            //月
            var mySprite:Sprite = new Sprite();
            addChild(mySprite);
            mySprite.graphics.beginFill(0xffffcc);
            mySprite.graphics.drawCircle(stage.stageWidth / 2, stage.stageHeight / 2, 33);
            mySprite.graphics.endFill();
            
            //perlinNoiseの動きに使う
            for(var i:int; i<_oct; i++){
                _offset[i] = new Point(Math.random()*stage.stageWidth, Math.random()*stage.stageHeight);
                _speed[i] = new Point(-0.5, Math.random()*-0.5);
            }
            
            //perlinNoiseの模様に使う
             _seed = Math.floor(Math.random() * 1000);

             //雲の部分
            _bitmap = new BitmapData(stage.stageWidth, stage.stageHeight);
            //表示
            var image:Bitmap = new Bitmap(_bitmap);
            addChild(image);
              
            //bitmapを白く
            Tweener.addTween(image, { _brightness: 1, time:0 } );//横着した。
            
            //雲を動かす
            addEventListener(Event.ENTER_FRAME, xEnterFrame);
            
            addChild(new Stats());
            
            
        }
        private function xEnterFrame(e:Event):void 
        {
            for(var i:int=0; i<_oct; i++){
                _offset[i].x += 3;400
                _offset[i].y += _speed[i].y;
            }
            //雲模様の生成
            _bitmap.perlinNoise(800, 100, _oct, _seed , false, true, 4, true, _offset);
            //thresholdで、雲がない部分ところをつくる。
            _bitmap.threshold(_bitmap, _bitmap.rect, new Point(), "<", 0x00960000, 0x00000000, 0x00ff0000, true);
            
        }
    }
}