Diesen Tipp in Originalversion zeigen.
"Gefälschte" Pegelmeter
Dieser Artikel zeigt wie man in Flash Pegelmeter simulieren kann.
Wir erstellen zunächst drei MovieCLips für die LEDs in Grün, Gelb und Rot. Hierbei verwenden wir ein Formtweening, um die Helligkeit nach und nach zu verringern. Wir fügen ein stop() im ersten und im letzen Schlüsselbild ein, damit die Animation nicht sofort abspielt.

Als nächstes erstellen wir einen MovieClip für das komplette Pegelmeter (meter), der 7 dieser LEDs enthält (man kann natürlich mehr als sieben verwenden, wenn man den Code entsprechend anpasst).
Den LEDs geben wir durchnummerierte Instanznamen (m1, m2, ... m7).

In diesem MovieClip fügen wir eine neue Ebene für ActionScript ein:
var thepeak = 0;
for (var i=1; i<=7; i++) { // Initialisierung
var obj = eval("m" + i);
obj.pos = 0;
destiny = (int(obj._totalframes - obj.pos * obj._totalframes / 100)) + 1;
obj.gotoAndStop(destiny);
}
function setPeak(peak) { // Setzen einen bestimmten Pegels
thepeak = peak; // aktueller Pegel
for (var i=1; i<=7; i++) {
if (i <= peak) {
var obj = eval("m"+i);
obj.pos = 100;
var destiny = (int(obj._totalframes - obj.pos * obj._totalframes / 100)) + 1;
obj.gotoAndStop(destiny);
} else {
var obj = eval("m"+i);
obj.pos = 0;
var destiny = (int(obj._totalframes - obj.pos * obj._totalframes / 100)) + 1;
obj.gotoAndStop(destiny);
}
}
}
function go() { // Starten des Pegelmeters
this.onEnterFrame = function() {
decPeak(thepeak);
}
}
function decPeak(nr) { // Pegel absinken lassen
var obj = eval("m" + nr);
if (obj.pos > 10) {
obj.pos -= 10;
var destiny = (int(obj._totalframes - obj.pos * obj._totalframes / 100)) + 1;
obj.gotoAndStop(destiny); // zum entsprechenden Bild springen
}
if (obj.pos < 30) {
if (nr > 1) {
thepeak --;
nr --;
decPeak(nr); // nächsttiefere LED abblenden
}
}
}
Nun benötigen wir noch einen weiteren MovieClip, in dem wir mehrere dieser Pegelmeter instanzieren und mit zufallsgenerierten Werten ansteuern. Wir erstellen einen leeren MC (meterbar) und fügen den Code ein, um die Pegelmeter zu instanzieren und anzusteuern:
var meters = 40; // Anzahl der Pegelmeter
var meter = new Array(meters);
for (var i=1; i<=meters; i++) { // Pegelmeter instanzieren
meter[i] = this.attachMovie("meter", "meter" + i, i);
meter[i]._x = (i - 1) * 15 + 10; // Position festlegen
}
function hold() { // Anhalten der Pegelmeter
delete this.onEnterFrame;
}
function go() { // Starten der Pegelmeter
for (var i=1; i<=meters; i++) {
meter[i].go(); // Pegelmeter einzeln starten
}
this.onEnterFrame = function() { // Zufallswerte für die Pegel setzen
for (var i=1; i<=meters; i++) {
var obj = meter[i];
if (obj.thepeak < 2 || int(Math.random() * (i + 5)) == 0) {
obj.setPeak(int(Math.random()* 7) + 1); // setzen des neuen Pegels
}
}
}
}
Nun könnnen wir den Clip "meterbar" auf der Bühne instanzieren und mit dem Befehl "go()" starten. Der Befehl "hold" stoppt die Pegelmeter.
Autor: Datic
Website: Ekto.net ()
Copyright (c) 2002-2005 by Andreas Schroth
URL: www.computer-tipps.net/webdesign179.html