Tobias Menzel
Erfahrenes Mitglied
Hallo,
mit diesem Codeschnipsel ist es möglich, Echtzeit-Mosaikeffekte (Vergröberung des Pixelrasters) zu erstellen. Mit diesem Effekt können z.B. Inhalte ein- oder ausgeblendet werden.
Kern der Sache ist eine Methode "sampleDown", die den Inhalt eines Quell-MovieClips transformiert auf einen Ziel-MovieClip überträgt:
Kurze Erläuterung:
Im Anhang findet Ihr ein Beispiel zum Probieren (Ziehen des "Sliders" ändert die Skalierung).
Grüße und viel Spaß,
Tobi
mit diesem Codeschnipsel ist es möglich, Echtzeit-Mosaikeffekte (Vergröberung des Pixelrasters) zu erstellen. Mit diesem Effekt können z.B. Inhalte ein- oder ausgeblendet werden.
Kern der Sache ist eine Methode "sampleDown", die den Inhalt eines Quell-MovieClips transformiert auf einen Ziel-MovieClip überträgt:
Code:
function sampleDown(f, src, dest) {
var bmp = new BitmapData(src._width / f, src._height / f);
var mtx = new Matrix();
mtx.scale(1 / f, 1 / f);
bmp.draw(src, mtx);
dest.attachBitmap(bmp, 1);
dest._width = src._width;
dest._height = src._height;
}
- Der Parameter f bestimmt den Faktor der Auflösungsveringerung. Ein Wert von 1 bedeutet keine Veränderung, wärend z.B. ein Wert von 100 eine Veringerung um den Faktor 100 veranlasst.
- Die Parameter src und dest sind Verweise auf Quell- und Ziel-MovieClip (beim Ziel-MovieClip sollte es sich um einen leeren MC handeln).
- Vorgehensweise:
- Zunächst wird ein BitmapData-Objekt erstellt, welches um den Faktor f gegenüber dem Quell-MC verkleinert ist.
- Dann wird eine Transformierungsmatrix erstellt, die negative Skalierung um den Faktor f bedingt. Dadurch wird das Quellbild zunächst verkleinert.
- Das Quellbild wird nun unter Verwendung der Matrix in unser BitmapData-Objekt gezeichnet (draw-Methode) und auf den Ziel-MC gesetzt (attachBitmap-Methode).
- Der Ziel-MC wird nun auf die Originalmaße des Quellclips gestreckt, wobei durch Vergrößerung der einzelnen Pixel die Kachelung entsteht.
- Zunächst wird ein BitmapData-Objekt erstellt, welches um den Faktor f gegenüber dem Quell-MC verkleinert ist.
Im Anhang findet Ihr ein Beispiel zum Probieren (Ziehen des "Sliders" ändert die Skalierung).
Grüße und viel Spaß,
Tobi