A pixelnyújtás során folyamatosan rajzolunk ki egy adott képet, egyszerre egy-egy oszlop képpontjait, ráadásul a kép széléig megnyújtva azokat:
A feladat természetesen tetszõleges képpel is elvégezhetõ, de ha szeretnénk, a példában felhasznált fotót letölthetjük innen. (© Fotó: Kiss László)|Hozzunk létre egy új Flash dokumentumot: a színpad mérete 320×240 képpont, a képkocka-sebesség 30 fps legyen. A File > Import > Import to Library... menüpont segítségével töltsük be szimbólumkönyvtárunkba a megjeleníteni kívánt képet. Nyissuk meg a könyvtárat, majd a képfájl felett kattintsunk az egér jobb gombjával, és a megjelenõ helyi menübõl válasszuk ki a Properties... (tulajdonságok) tételt. A megnyitott párbeszédablakban kattintsunk az Advanced (haladó) gombra, hogy az ablak felfedje a képfájl speciális beállításait is.
import flash.display.BitmapData;
import flash.geom.Rectangle;
|Hozzunk létre egy "kep1" nevû BitmapData objektumot úgy, hogy grafikai tartalomként betöltjük a szimbólumkönyvtárban található, és a "rozsa" azonosítóval ellátott képet. Ebbõl az információból fog táplálkozni megjelenítõ algoritmusunk. Hozzunk létre egy "kep2" nevû objektumot is, amely felveszi a kép méretét, nem átlátszó, kitöltõszíne pedig fehér (0x00FFFFFF). Ezt követõen készítsünk futási idõben egy üres, "kep_mc" példánynévvel ellátott filmklipet, majd kapcsoljuk hozzá a "kep1" objektum grafikai tartalmát. Fontos megjegyeznünk, hogy a BitmapData objektum pusztán egy tároló, így a megjelenítéshez egy filmklipet is létre kell hoznunk. Programkódunk most a következõképpen néz ki:
import flash.display.BitmapData;
import flash.geom.Rectangle;
var kep1:BitmapData = BitmapData.loadBitmap("rozsa");
var kep2:BitmapData = new BitmapData(320, 240, false, 0x00FFFFFF);
_root.createEmptyMovieClip("kep_mc", _root.getNextHighestDepth());
kep_mc.attachBitmap(kep1, this.getNextHighestDepth());
Futtatáskor azt tapasztaljuk, hogy megjelenik az animáció alapjául szolgáló kép.
n = 0;
_root.onEnterFrame = function () {
}
|Annak érdekében, hogy animációnk újraindítható legyen, szúrjunk be még egy eseménykezelõ függvényt is, amely visszaállítja nullára az aktuális oszlopszámot. Teljes programkódunk tehát így néz ki:
import flash.display.BitmapData;
import flash.geom.Rectangle;
var kep1:BitmapData = BitmapData.loadBitmap("rozsa");
var kep2:BitmapData = new BitmapData(320, 240, false, 0x00FFFFFF);
_root.createEmptyMovieClip("kep_mc", _root.getNextHighestDepth());
kep_mc.attachBitmap(kep2, this.getNextHighestDepth());
n = 0;
_root.onEnterFrame = function () {
}
_root.onMouseDown = function () { n = 0; }
Mentsük el eddigi munkánkat, és gyönyörködjünk a végeredményben!
Jó munkát!
Figyelem! A tartalom legalább 2 éve nem frissült! Előfordulhat, hogy a képek nem megfelelően jelennek meg.