Fliegende Lichtsplitter

Yang

Mitglied
Tach Loide!

Bin ein absoluter Flash-Neuling und habe eine Frage zu angehängtem Bild:
Ich würd die Geige gern als Enterseite für meine Site benutzen (kommen noch 2 Schriftzüge drüber und drunter), und ich hatte vor, daß es aus dem Zentrum des Lichts heraus 'strahlt', also so kleine weiße Lichtsplitter, die in einer Endlosschleife nach außen fliegen und dann verblassen.
Augenblicklich benutze ich Swish 2, ich foffe, damit kann man das hinkriegen...
Any ideas?

Yang
 

Anhänge

  • geige+blitz+blau+klein.jpg
    geige+blitz+blau+klein.jpg
    39,9 KB · Aufrufe: 79
Hi,

wir hatten gestern einen Thread (Stichwort: Schmetterlinge), der sich auf Dein Problem übertragen ließe. Ich habe dazu gestern Abend eine Beispieldatei erstellt, die (mit anderen Parametern) kleine Leuchtpartikel nach außen fliegen lassen könnte. Ich werde diese Datei im Laufe des Tages mal anpassen.

Ansonsten (falls es eher Strahlen sein sollten) bietet sich auch folgende Methode an:
  • 1 Ebene mit einem radial Verlauf (Mitte: hell, Rand: transparent)
  • 1 Ebene mit einem MC, der einige gegeneinander rotierende "Strahlen" enthält
  • 2. Ebene als Maske für die erste Ebene.
ich habe das 2. Beispiel einmal angehängt, obwohl Du als SWISH-User damit wenig anfangen kannst. Vielleicht kannst Du Fir aber durch die SWF das Prinzip verdeutlichen.

Gruß
 

Anhänge

Hi Datic!

In der Tat, öffnen kann ich das .zipTeil mit Swish nicht, aber ich konnte es mir wenigstens im Dreamweaver mal anschauen.
Die Richtung stimmt absolut!
Tja, aber wie gesagt, bin noch Neuling und noch dazu mit Swish unterwegs. Glaubst du, dass das damit hinzubekommen ist?
Freu mich auf dein zweites Demo!

Yang
 
Hi,

ok, ich habe die Datei mal modifiziert (im Anhang als ZIP-Archiv). Wenn die Optik in etwa Deinen Vorstellungen entsprechen sollte, werde ich den Quelltext posten (.fla hat wohl keinen Sinn, da Du mit Swish arbeitest - wenn Swish eine Scriptsprache unterstützt, sollte es sich allerdings umsetzen lassen).

Gruß
 

Anhänge

Hi Datic!

Danke für die Modifizierung, der Quelltext wäre in der Tat sehr interessant!
Ich bin mit Script- und Programmiersprachen zwar ebenfalls ein, sagen wir, Vollidiot ;o), aber irgendwie werd ich's schon hinkriegen.
Nur mal grundsätzlich: Fällt dir an meiner Grafik sonst noch irgendein Anfängerfehler auf?

Yang
 
Ok, hier hats den Quelltext. Ich habe keine Ahnung von Swish, kann also nicht sagen, ob Du überhaupt etwas damit anfangen kannst...

Im Prinzip instanzieren wir eine Anzahl (z.B. 30) MovieClips (Leuchtpartikel), die mehr oder weniger Zufallsgesteuert aus einem Mittelpunkt nach aussen wandern.
PHP:
fly = new Array(); // Array für die Partikel
var count=30; // Anzahl der Partikel
var rot=0; // Rotaion des Containerobjektes

for (var i=0; i<=count; i++) {
    fly[i]=container.attachMovie("partikel", "partikel"+i, i); // Hinzufügen der Partikel
    initItem(i); // Initialisierung von Position und Geschwindigkeitsvektoren
    fly[i]._alpha=100-Math.random()*100; // Transparenz zufällig setzen
}

function initItem(n) { // Partikel initiailsieren
    fly[n]._x = Math.random()*20-10; // Position
    fly[n]._y = Math.random()*20-10;
    fly[n].dx = Math.random()*200-100; // dx, dy = Zielpunkte
    fly[n].dy = Math.random()*200-100;
    fly[n].sx = Math.random()*2-1.5; // sx, sy = Geschwindigkeitsvektoren
    fly[n].sy = Math.random()*2-1.5;
    fly[n]._alpha=100-Math.random()*10; // Transparenz nur leicht variieren
}

this.onEnterFrame = function() { // wird mit der Framerate aufgerufen
    rot+=(Math.random()*2); // Rotation des Containerclips
    if (rot>=180) rot-=360; // Flash-spezifisch (arbeitet mit negativen Winkeln)
    container._rotation=rot;
    for (var i = 0; i<count; i++) {
        var f=Math.random()*0.2; // Beschleunigungsfaktor (zufällig)
        fly[i].sx += (fly[i].dx>fly[i]._x) ? f : -f;
        fly[i].sy += (fly[i].dy>fly[i]._y) ? f : -f;
        fly[i].sx += (Math.sin(fly[i]._y)); // zusätzliche Modulation des Vektors
        fly[i].sy += (Math.cos(fly[i]._x)/10);
        fly[i]._x += fly[i].sx;
        fly[i]._y += fly[i].sy;
        if (Math.abs(fly[i]._x-fly[i].dx)<5 || Math.abs(fly[i]._y-fly[i].dy)<5) { // neue Ziele, ...
            fly[i].dx *=2; // ... falls der Partikel seinem Ziel zu nahe kommt
            fly[i].dy *=2;
        }
        fly[i]._alpha/=1.02+Math.random()*0.1; // Alphatransparenz reduzieren
        if (fly[i]._alpha<5) { // Wenn Transparenz unter 5% sinkt ...
            initItem(i); // ... dieses Objekt neu initialisieren
        }
    }
}
"container" ist hier ein leerer MovieClip, der als Behälter für die Partikel dient.

Normalerweise setzen wir keine fertigen Scripts vor ( ;) ), aber ich will mal eine Ausnahme machen.

Wenn Du Dir den ganzen Kram mit der Zufälligen Bewegung sparen willst, kannst Du natürlich auch einige Partikel auf die Bühne ziehen, und alle mit einen Motiontweening bewegen. Die Bewegung wiederholt sich in diesem Fall allerdings.

Gruß
 
Zurück