"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
Weitere Funktionen
Zur Artikel-Übersicht
Diesen Artikel ausdrucken
Beispiel downloaden
Online-Beispiel ansehen
Haben Sie noch Fragen? Fragen Sie auf computer-portal.net.
Bewertung
Dieser Tipp wurde noch nicht bewertet.

Bewertung in Punkten [10 = genial, 1 = sehr schlecht]:      
Kommentare
Bisherige Kommentare ansehen:
Zu diesem Artikel wurden noch keine Kommentare verfasst.

Einen eigenen Kommentar verfassen:
Sie müssen sich erst registrieren um einen Kommentar verfassen zu können.

Bestellen
Abbestellen
    
    
    Weitere Informationen
  Welchen Browser nutzen Sie?
Internet Explorer
Mozilla
Mozilla Firefox
Netscape
Opera
Safari
Sonstige
    Ergebnis ansehen