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:
PHP-Code:
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
}
}
}
PHP-Code:
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
}
}
}
}
Im Anhang gibts die komplette .fla und .swf
Viel Spaß
..



Kommentar schreiben

Bereiche
Kategorien
Forum - Webmaster & Internet





Artikel bewerten