Flash Tutorial: TV-Rauschen mit AS 2

Heute zeigen wir euch wie man mit Flash und ein wenig Actionscript das bekannte TV-Rauschen erzeugt. Dazu bedarf es lediglich einem Bild von einem Fernseher in Frontansicht (entweder ihr zeichnet euch selbst einen oder schaut im Netz nach geeigneten Bildern), einer Schaltfläche und den Einsatz der BitmapData-Klasse und deren noise() Methode. Mit der noise() Methode kann man ein Bild mit zufällig platzierten Pixeln versehen und somit eignet sich die Methode wunderbar zur Darstellung des Effekts.

1. Zuerst erstellen wir uns eine neue Flash-Datei. Danach importieren wir in Flash das Bild vom Fernseher und platzieren es ins erste Schlüsselbild der Zeitleiste. Der Fernseher wird mittig auf der Bühne zentriert.

2. Wir erstellen eine neue Ebene und zeichnen in der Ebene ein schwarzes Rechteck, das genau deckungsgleich mit der Bildröhre des Fersehers ist. Danach wandeln wir das Rechteck in einen Movieclip um und geben ihm den Instanznamen “maske”.

3. Wir erstellen wieder eine neue Ebene. Nun müssen wir noch eine Schaltfläche zum ein- und ausschalten des Fernsehers erstellen. Dazu zeichnen wir ein Rechteck (20×20 px) in die neue Ebene und platzieren es mittig unter dem Fernseher. Das Rechteck wird wieder in einen Movieclip umgewandelt und bekommt den Instanznamen “button”.

4. Ab jetzt kommt Actionscript zum Einsatz. Wir erstellen uns nochmals eine neue Ebene und platzieren dort den Actionscript-Code.

5. Als erstes benötigen wir einen Platzhalter-Movieclip für das Rauschen und einen duplizierten Masken-Movieclip:

stop();
Stage.scaleMode = "noScale";

this.createEmptyMovieClip("rauschen", 1);
rauschen._x = maske._x;
rauschen._y = maske._y;

var aus = this.maske.duplicateMovieClip("aus", this.getNextHighestDepth());
aus._visible = false;

6. Nun benötigen wir ein BitmapData-Objekt und fügen es dem Platzhalter-Movieclip hinzu. Der Platzhalter-Movieclip wird wiederum vom Masken-Movieclip maskiert:

var bmp = new flash.display.BitmapData(maske._width, maske._height);
rauschen.attachBitmap(bmp, 1);
rauschen.setMask(maske);

7. Als nächstes erstellen wir die Funktion erstelleRauschen() um die Pixel kontinuierlich zu verändern. Dazu bedarf es einer onEnterFrame-Funktion und der noise() Methode:

function erstelleRauschen(){
this.onEnterFrame = function(){
bmp.noise(Math.floor(1000 * Math.random()), 0, 255, 1 | 2 | 4, true);
};
};
erstelleRauschen();

8. Zum Schluß geben wir noch dem Button die benötigte Funktionalität zum ein- und ausschalten des Fernsehers:

button.onPress = function(){
aus._visible = !aus._visible;
if(aus._visible == true){
delete this._parent.onEnterFrame;
}else{
this._parent.erstelleRauschen();
};
};

Wenn wir nun die Flash-Datei veröffentlichen sehen wir das bekannte TV-Rauschen.