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.
|