Como eu falei, poucas mudanças fazem outra coisa totalmente diferente… diminuí o n do perlinNoise e deixei a cor da linha variar de acordo com o y:


stage.quality = "medium";
var noise:BitmapData = new BitmapData( 300, 1000 );
noise.perlinNoise( noise.width, noise.height, 2, Math.random() * 256, true, false, 7, true );
var container:Sprite = new Sprite();
container.x = 100;
container.y = 150;
addChild( container );

function createLine( bmd:BitmapData ):Sprite {
var line:Sprite = new Sprite();
line.graphics.beginFill( 0xFFFFFF, 1 );
line.graphics.lineStyle( 0, 0x000000, 0 );
line.graphics.lineTo( 0, -( bmd.getPixel( 0, 1 ) & 0xFF ) / 1.7 );
var ratio:Number;
for (var i:uint = 0; i < bmd.width; i +=2) {
ratio = ( bmd.getPixel( i, 1 ) & 0xFF );
line.graphics.lineStyle( 0, rgb2hex( 0, Math.min( ratio * 3 + 102, 255 ), Math.min( ratio * 3 + 102, 255 ) ), 1 );
line.graphics.lineTo( i, -ratio / 2.2 );
}
line.graphics.lineStyle( 0, 0x000000, 0 );
line.graphics.lineTo( i, 0 );
line.graphics.endFill();

return line;
}

var count:uint = 1;
function animate() {
var bmd:BitmapData = new BitmapData(noise.width, 2 );
bmd.copyPixels( noise, new Rectangle( 0, count, noise.width, 2 ), new Point() );
var elm:Sprite = new Sprite();
var line:Sprite = createLine( bmd );
line.x -= line.width / 2;
line.y -= line.height / 2;
elm.addChild( line );
elm.addEventListener( Event.ENTER_FRAME, onLineFrame );
container.addChild( elm );
container.scaleX = container.scaleY = 2;
container.x = 250;
container.y = 350;
count += 5;
if ( count >= noise.height - 1 ) {
count = 1;
}
}
function onLineFrame( e:Event ):void {
var elm:Sprite = e.target as Sprite;
var ratio:Number = elm.scaleY;
ratio -= 0.02;
elm.scaleX = ( ratio / 1.5 ) + 0.5;
elm.scaleY = ratio;
elm.y = -160 * ( 1 - ratio );
elm.alpha = ( ratio * 1.5 ) - 0.5;
if ( ratio <= 0.3 ) {
elm.parent.removeChild( elm );
elm.removeEventListener( Event.ENTER_FRAME, onLineFrame );
}
}
function rgb2hex( r:int, g:int, b:int ):Number
{
return ( r << 16 ) | ( g << 8 ) | b;
}
//animate();
setInterval( animate, 10 );


3 Responses to “terrenos no flash - parte 3”  

  1. 1 Gabriel Rodrigues

    Seguindo seu raciocínio (?):

    http://www.flickr.com/photos/markknol/3011939774/

    =*

  2. 2 Leandro Ferreira

    exatamente, a idéia é a mesma!

  3. 3 Dirceu Pauka Jr.

    É a versão 0.3 do gist-it? AHAHAH ela tá bem melhor :)

Leave a Reply