EFEKT ZRKADLENIA CEZ AS3                                                 as3


    Tento tutoriál ukazuje ako vytvoriť pekne vyzerajúci efekt zrkadlenia, alebo odraz obrazu od nalešteného povrchu ak chcete. Celý odrazený obraz je generovaný actionscriptom, takže vy sa nemusíte babrať s gradientami,alphou atď. Všetko čo stačí spraviť, je nahradiť obraz s čímkoľvek čo chcete aby malo tento efekt. Na konci by ste mali dostať niečo takéto:



     Otvorte nový actionscript 3.0 flash dokument. V tomto tutoriály budem demonštrovať tento efekt na bitmape (obrázku), ale môžete to spraviť s čímkoľvek čo sa dá skonvertovať na bitmapu, teda ak chcete odrážať text , musíte ho najprv rozbiť až na shape ( môžete to spraviť zmačknutím ctrl+B dva krát zatial čo je ten text označený ). Vložte obrázok ktorý chcete použiť, skonvertujte ho na movieclip a nazvite ho picture. Teraz otvorte okno actions a vložte nasledujúci actionscript kód:


var reflection:BitmapData;
var reflectionHolder:Bitmap;

function createReflection():void {
	reflection=new BitmapData(picture.width,picture.height,true,0x00ffffff);

	var flipMatrix:Matrix = new Matrix();
	flipMatrix.rotate(Math.PI);
	flipMatrix.scale( -1, 1 );
	flipMatrix.translate(0, picture.height);

	reflection.draw(picture, flipMatrix);

	for (var i:int = 0; i < picture.height; i++) {
		var rowFactor:Number = Math.max(0, 0.5 - (i / picture.height));
		for (var j:int = 0; j < picture.width; j++) {
			var pixelColor:uint = reflection.getPixel32(j,i);
			var pixelAlpha:uint = pixelColor>>24&0xff;
			var pixelRGB:uint = pixelColor&0xffffff;
			var resultAlpha:uint = pixelAlpha*rowFactor;
			reflection.setPixel32(j, i, resultAlpha << 24 | pixelRGB);
		}
	}

	reflection.applyFilter(reflection, reflection.rect, new Point(0, 0), 
											new BlurFilter(4, 4, 3));

	reflectionHolder=new Bitmap(reflection);
	reflectionHolder.y=picture.y+picture.height;
	reflectionHolder.x=picture.x;

	addChild(reflectionHolder);
}

createReflection();


     Prvé dva riadky definujú novú bitmapu použitú na vytvorenie odrazu. Na riadkoch 4-33 je funkcia ktorá vytvára samotný odraz. Riadky 8,9,10 definujú natočenie, veľkosť a pozíciu odrazu. For cyklus na riadkoch 14-23 vytvára fade out (obraz postupne mizne) efekt. Riadky 25-30 vytvárajú blur effect (rozmazanie obrazu). Môžete sa pohrať s hodnotami v BlurFilter parametry ak chete zmeniť veľkosť rozmazania v jednotlivých smeroch. Riadok 32 vkladá vytvorený odraz na scénu. Úplne posledný riadok spúšťa túto funkciu.


STIAHNUT ZDROJOVY SUBOR