Anzeige

Willkommens Intro, wer kann helfen?!

Willkommens Intro, wer kann helfen?! | PSD-Tutorials.de

Erstellt von BlueThunder, 16.11.2005.

  1. BlueThunder

    BlueThunder Nicht mehr ganz neu hier

    Dabei seit:
    10.02.2005
    Beiträge:
    208
    Geschlecht:
    männlich
    Ort:
    Gelsenkirchen
    Software:
    PS | DW | ID | AI | FL | C4d
    Willkommens Intro, wer kann helfen?!
    Hallo,

    ich würde gerne ein Willkommens-Intro erstellen, doch ich weiß nicht so recht, wie ich anfangen soll :? Habt ihr evtl. ein Tutorial für soetwas auf Lager?

    Jetzt kommt mir nicht mit Google, da habe ich nichts passendes gefunden :roll:

    Ich stelle mir einen solchen Effekt vor, doch nur ohne die Sterne 8). Es soll schlicht wirken, doch kein "Wegklicker" werden, ich wäre froh, wenn mir jemand helfen würde/könnte.

    MfG BT
     
    #1      
  2. webdesign

    webdesign Aktives Mitglied

    Dabei seit:
    06.03.2005
    Beiträge:
    1.474
    Geschlecht:
    männlich
    Ort:
    DE
    Kameratyp:
    Nikon D70
    Willkommens Intro, wer kann helfen?!
    Hallo,

    also ich denke mit Flash bis da am besten bedient.
    Es gibt aber auch Swish 1.0.1 oderso das ist, glaube ich, freeware.

    Damit kannst Du ohne Vorwissen (Flash) per Drag & Drop sowas zusammen stellen.

    Ist ne kinderleichte Sache.

    Grüße webdesign :wink:
     
    #2      
  3. BlueThunder

    BlueThunder Nicht mehr ganz neu hier

    Dabei seit:
    10.02.2005
    Beiträge:
    208
    Geschlecht:
    männlich
    Ort:
    Gelsenkirchen
    Software:
    PS | DW | ID | AI | FL | C4d
    Willkommens Intro, wer kann helfen?!
    Hi!

    Dank dir erstmal, doch ich würde es gerne mit Flash 8/MX verwirklichen, irgendwann muss man es ja mal lernen ;) Also wenn jemand bereit ist mir zu helfen, so würde ich mich sehr freuen :roll:

    MfG BT
     
    #3      
  4. BlueThunder

    BlueThunder Nicht mehr ganz neu hier

    Dabei seit:
    10.02.2005
    Beiträge:
    208
    Geschlecht:
    männlich
    Ort:
    Gelsenkirchen
    Software:
    PS | DW | ID | AI | FL | C4d
    Willkommens Intro, wer kann helfen?!
    Hi TID,

    sie haben Post... :roll: *Danke*

    ---------------

    Es kann aber trotzdem noch geantwortet werden ;) Ich bin für alles offen...

    MfG BT
     
    #4      
  5. BlueThunder

    BlueThunder Nicht mehr ganz neu hier

    Dabei seit:
    10.02.2005
    Beiträge:
    208
    Geschlecht:
    männlich
    Ort:
    Gelsenkirchen
    Software:
    PS | DW | ID | AI | FL | C4d
    Willkommens Intro, wer kann helfen?!
    Hallo TID!

    Dein Intro ist ja der Hammer!! 8O. Meins muss ja nicht sooo aufwendig werden :wink:. Aber bevor ich es vergesse, sie haben Post :roll:

    Naja, du bist ja auch `nen Profi :? Wie lange sitzt da jemand dran, der es noch nicht so beherrscht? Wenn dieser jemand das überhaupt so hinbekommen würde... :roll:

    MfG BT
     
    #5      
  6. bennyPB

    bennyPB Guest

    Willkommens Intro, wer kann helfen?!
    hi blue thunder
    ,hab dich lange nicht mehr beiträge schreiben gesehen.wie der herr dort oben sagt und auch andere hier gesagt haben .reicht swishmax für texteffekte .auch für die sterne dürften es kein problem sein.das swish ist für anfänger gedacht ,also auch für dich ggggg.die effekte sind per einen mausklick wählbar.wenn du flash schon etwas raus hast,wirst du es locker in ein paar stunden ohne beschreibung schaffen
    flash ist glaube ich meiner meinung nach auch zu schwierig für diesen effekt,besonders für dich als anfänger.also wenn du fragen zu swishmax haben solltest: icq 271 572 513.
     
    #6      
  7. h_seldon

    h_seldon Aktives Mitglied

    Dabei seit:
    13.09.2005
    Beiträge:
    338
    Geschlecht:
    männlich
    Ort:
    Nähe München
    Willkommens Intro, wer kann helfen?!
    Hallo,

    das ist jetzt auf die Schnelle geschrieben, aber das Einblenden könnte man ungefähr so skripten:

    1. Erstelle einen leeren MovieClip namens mc_chars mit gleichem Verknüpfungsnamen für den Zugriff per Actionscript.
    2. Im MovieClip erstelle ein dynamisches Textfeld namens buchst, Schriftgröße 24, _typewriter, weiß.
    3. Das Textfeld wird im MovieClip zentriert, d.h. der Registrierungspunkt des MovieClips befindet sich in der Mitte.
    4. Trage bei den Optionen des Textfeldes unter Zeichen - Bereiche angeben - Diese Zeichen einschließen alle Zeichen ein, die im Text vorkommen. Für Texteffekte wie skalieren und alpha werden die Schriftkonturen benötigt, die hiermit eingebettet werden.
    5. In unserem Beispiel wären das (ohne Anführungszeichen): "HaloFsher!". Daraus wird später der Text "Hallo Flasher".
    6. Füge in der Hauptzeitleiste folgendes Skript ein:
    derText = "Hallo Flasher!";
    this.createEmptyMovieClip("t", 1);
    t._x = 200;
    t._y = 100;
    tiefe = 1;
    aBuchstaben = [];
    einblenden = function () {
    if (tiefe == derText.length) {
    clearInterval(intervTxt);
    }

    t.attachMovie("mc_chars", "c"+tiefe, tiefe);
    var obj = t["c"+tiefe];
    obj._alpha = 0;
    obj.buchst.autoSize = true;
    obj.buchst.text = derText.charAt(tiefe-1);
    if (tiefe>1) {
    obj._x = t["c"+(tiefe-1)]._x+t["c"+(tiefe-1)]._width+10;
    }
    aBuchstaben.push(obj);
    tiefe++;
    };
    intervTxt = setInterval(einblenden, 100);
    t.onEnterFrame = function() {
    if (aBuchstaben.length>0) {
    for (e in aBuchstaben) {
    if (aBuchstaben[e]._alpha<100) {
    aBuchstaben[e]._alpha += 10;
    aBuchstaben[e]._xscale += 5;
    aBuchstaben[e]._yscale += 5;
    }
    }
    }
    for (e in aBuchstaben) {
    if (aBuchstaben[e]._alpha<100) {
    return;
    } else {
    delete this.onEnterFrame;
    }
    }
    };

    Beim Testen wird ein Text eingeblendet und skaliert.
    Sorry, das Skript ist nicht optimiert, demonstriert aber hoffentlich einen Lösungsansatz.

    Kurzerklärung: ein leerer MovieClip wird als Behälter erzeugt, in den die Buchstaben sukzessive eingefügt werden. Die Funktion einblenden sorgt für das Einfügen. Wenn wir noch nicht alle Buchstaben angezeigt haben, wird in den leeren MovieClip unser Buchstabenmovieclip attached, der Alphawert auf 0 gesetzt und der benötigte Buchstabe eingefügt. Seine x-Position ergibt sich aus der Position des vorherigen Buchstabens plus eines willkürlich gewählten Abstandes (das ist unsauber: hier müßte man den Wert in Abhängigkeit vom Skalierungsfaktor wählen, aber so geht's auch). Ausgenommen ist der erste Buchstabe, der einfach auf die 0-Position gesetzt wird - und zwar automatisch, wenn wir ihm nicht explizit einen anderen Wert zuweisen. Schließlich trägt sich jeder Buchstabenclip in einem Array ein.
    Das interval sorgt dafür, daß die Buchstaben in einem bestimmten zeitlichen Abstand (hier: 100 ms) eingeblendet werden, indem die eben beschriebene Funktion aufgerufen wird. Liegen alle Buchstaben vor, löschen wir das interval.
    Zwar könnte man jedem einzelnen Buchstaben ein eigenes onEnterFrame zwecks einfaden und skalieren zuweisen, das ist aber eine suboptimale Lösung, da viele enterFrames Flash verlangsamen. Deswegen werden alle Buchstabenclips in einem eigenen Array verwaltet und ein einziges enterFrame, das dem ganz am Anfang erstellten leeren MovieClip zugewiesen wird, erledigt diese Aufgabe. Zugleich kontrolliert das enterFrame, ob alle Buchstaben mit 100 % Alpha angezeigt werden. In dem Fall wird es nicht mehr benötigt und gelöscht.

    hoffe, das war halbwegs verständlich.
    viel spass
     
    #7      
  8. bennyPB

    bennyPB Guest

    Willkommens Intro, wer kann helfen?!
    wow wenn bluethunder es als anfänger mit der beschreibung sofort schaft.respekt.
     
    #8      
  9. BlueThunder

    BlueThunder Nicht mehr ganz neu hier

    Dabei seit:
    10.02.2005
    Beiträge:
    208
    Geschlecht:
    männlich
    Ort:
    Gelsenkirchen
    Software:
    PS | DW | ID | AI | FL | C4d
    Willkommens Intro, wer kann helfen?!
    Hallo!

    Kein Problem 8) :D
    Ich setze mich morgen mal dran und mal sehen ob`s klappt :?

    Sollte euch beim spazieren gehen `nen Monitor vor die Füße fallen, dann war es bestimmt meiner... :!: :wink:

    Danke für die Hilfe!

    MfG BT
     
    #9      
  10. h_seldon

    h_seldon Aktives Mitglied

    Dabei seit:
    13.09.2005
    Beiträge:
    338
    Geschlecht:
    männlich
    Ort:
    Nähe München
    Willkommens Intro, wer kann helfen?!
    Hallo,

    habe ein Tutorial fertig gestellt, das ein- und ausfaden hoffentlich verständlich erklärt. Es wird wohl im Laufe des Tages online gestellt.

    viel spass
     
    #10      
  11. Matthias

    Matthias Administrator Teammitglied PSD Beta Team

    1
    Dabei seit:
    08.03.2004
    Beiträge:
    4.185
    Geschlecht:
    männlich
    Ort:
    Waren (Müritz)
    Software:
    CC
    Willkommens Intro, wer kann helfen?!
    Danke @h-seldon.

    Schon freigeschaltet :wink:.

    Außerdem beachte jeder die Bitte am Ende des Tutorials. Diese kann übernommen werden auf alle Tutorials von www.psd-tutorials.de

    Bewertet und votet. Das ist so immens wichtig für die Tutorialersteller.
    Gebt bitte Feedback.
     
    #11      
  12. h_seldon

    h_seldon Aktives Mitglied

    Dabei seit:
    13.09.2005
    Beiträge:
    338
    Geschlecht:
    männlich
    Ort:
    Nähe München
    Willkommens Intro, wer kann helfen?!
    Naja, ist schon eine Menge Skript. Aber es kommt immer darauf an, was man erreichen möchte:

    1. Ich benötige neben Flash kein anderes Programm.
    2. Das Skript ist flexibel: einmal erstellt, kann es problemlos in jeden beliebigen Flashfilm integriert werden und der Text läßt sich durch eine einfache Änderung des Funktionsaufrufs problemos anpassen.
    3. Wird es, wie am Ende des Tutorials beschrieben, noch mit setInterval optimiert, kann man auch die Geschwindigkeit des Einblenden sowie des Ein- und Ausfadens einfach ändern. Ohne setInterval wie im vorliegenden Fall müßte man dazu die Bildwiederholrate des Films auf den gewünschten neuen Wert setzen.
    4. Wenn ich einen Kunden habe, der den Effekt anpassen möchte, muß er kein Flash (und auch kein anderes Programm) besitzen. Das Skript läßt sich leicht so ändern, daß der Text aus einer externen Quelle eingelesen wird.
    5. Die Menge des Skripts läßt sich noch reduzieren, aber dann wäre es nicht mehr lesbar - ist halt nur eine Frage des Ansatzes. Im Ernst: der Skripting-Aufwand lohnt sich tatsächlich unter der Voraussetzung, daß man in mehr als nur einem Projekt eine solche Lösung (oder eine ähnliche Lösung) benötigt.
    6. Von dieser Stelle aus läßt sich das Ganze natürlich beliebig ausbauen: wenn ich andere Effekte haben möchte (z.B. Rotation, farbänderung etc.), dann kann ich auf dem bestehenden Skript aufbauen und es entsprechend ergänzen. Es ist ein bißchen wie das Bauen mit Lego: wenn das Fundament steht, packe ich andere Steine drauf und habe etwas Neues geschaffen.
    7. Für diejenigen, die Skripting lernen wollen, ist es zudem eine vernünftige Fingerübung, um sich bestimmte Techniken anzueignen. In meinen Actionskript-Kursen kommen wir schon relativ früh zu solchen Skripten.



    viel spaß
     
    #12      
  13. 007Thorben

    007Thorben Guest

    Willkommens Intro, wer kann helfen?!
    möchte nur mal ein dickes lob aussprechen!ich gucke ab und zu hier in diese kategorie und besonders das schneeintro gefällt mir richtig gut1 mal eins das man nich wegklickt :)
     
    #13      
  14. BlueThunder

    BlueThunder Nicht mehr ganz neu hier

    Dabei seit:
    10.02.2005
    Beiträge:
    208
    Geschlecht:
    männlich
    Ort:
    Gelsenkirchen
    Software:
    PS | DW | ID | AI | FL | C4d
    Willkommens Intro, wer kann helfen?!
    Ich wär` dafür, somit kann man dann mal vergleichen. :roll:

    MfG BT
     
    #14      
  15. h_seldon

    h_seldon Aktives Mitglied

    Dabei seit:
    13.09.2005
    Beiträge:
    338
    Geschlecht:
    männlich
    Ort:
    Nähe München
    Willkommens Intro, wer kann helfen?!
    Hallo TID,

    ja, das ist eine gute Idee, einmal die Animation mit den fallenden Kugeln - das meinst Du doch mit Schneegestöber? - gemeinsam zu erläutern. Es würde mich auch interessieren, wie Du das in Swishmax oder Flash geskriptet hast. Der Effekt ist übrigens klasse geworden!
    Hättest Du Lust zu einem gemeinsamen Tutorial auf dieser Basis? Da könnte man alles vorstellen, von den konzeptionellen Grundlagen über die Erstellung der Grafiken und der Animationen bis hin zum Skripten. Das wäre vielleicht auch für andere interessant, die nicht unsere Diskussion hier im Forum mit verfolgen.
    Um Mißverständisse zu vermeiden: natürlich hast Du recht, was die Erwartungshaltung von Flash-Anfängern anbelangt. Man will schnell zu einem tollen Ergebnis kommen, aber der Aufwand, der dahinter steckt, ist den meisten am Anfang gar nicht klar. Insofern ist Dein Ansatz, zuerst mal eine bekannte Seite in einem leichter zu bedienden Programm nachzubauen, völlig legitim und sinnvoll. Da ich in einem mehrjährigen Studiengang unterrichte, habe ich eventuell mehr Zeit für Flash und kann relativ früh in die Programmierung einsteigen, zumal u.a. auch Java Teil des Unterrichts ist.
    Wie schon in Antwort auf Deinen Kommentar zum Tutorial geschrieben, gibt es m.E. nicht den optimalen Ansatz schlechthin, den man mit Flash immer und unabänderlich verfolgen muß. Mal bietet sich die Zeitleistenani an und mal ist Skripting besser. Nur dort wo ich mit einem vertretbaren Aufwand skripten kann, ist das natürlich meine erste Wahl - was aber entsprechendes Vorwissen voraussetzt. Bei dem Texteffekt mit dem ein-/ausfaden war für mich der Aufwand vertretbar, aber für einen Anfänger wohl kaum. Deswegen ja auch das Tutorial, so daß sich auch Anfänger einarbeiten können. Und zur Orientierung stand zu Beginn der Hinweis auf Kenntnisse, die man mitbringen muß. Damit kann dann jeder selbst einschätzen, ob es machbar (und lohnenswert) ist oder nicht.
    Also ein gemeinsames Tutorial fände ich super :D
    viele grüße
     
    #15      
  16. h_seldon

    h_seldon Aktives Mitglied

    Dabei seit:
    13.09.2005
    Beiträge:
    338
    Geschlecht:
    männlich
    Ort:
    Nähe München
    Willkommens Intro, wer kann helfen?!
    Prima.

    Das Schneegestöber könnte ich mir ungefähr so vorstellen:

    this.createEmptyMovieClip("b", 1);
    b.bewegen = [];
    b.anzahl = 50;
    b.tiefe = 1;
    b.maxNr = 10;
    b.pixel = 2;
    b.seitenwind = -2;
    b.starten = function(wer, yPos) {
    wer.abweichung = Math.random();
    wer._width = 2;
    wer._height = 2;
    wer._x = Math.ceil(Math.random()*Stage.width);
    wer._y = Math.ceil(Math.random()*yPos);
    wer._alpha = Math.ceil(Math.random()*50)+30;
    wer.scale = Math.random()*30;
    wer._xscale *= wer.scale;
    wer._yscale *= wer.scale;
    wer.tempo = Math.ceil(Math.random()*12)+3;
    };
    for (var i = 1; i<=b.anzahl; i++) {
    b.attachMovie("mc_kugel", "k"+b.tiefe, b.tiefe);
    var obj = b["k"+b.tiefe];
    b.bewegen.push(obj);
    b.starten(obj, 10);
    b.tiefe++;
    }
    b.onEnterFrame = function() {
    for (e in b.bewegen) {
    if (b.bewegen[e]._y<Stage.height) {
    b.bewegen[e]._x += b.bewegen[e].abweichung+b.seitenwind;
    b.bewegen[e]._y += b.bewegen[e].tempo;
    } else {
    b.starten(b.bewegen[e], -50);
    }
    }
    };

    Wie sonst auch packen wir alles in einen einzelnen MovieClip, hier "b".
    Dem geben wir eine Handvoll Variablen und Arrays mit:
    - bewegen enthält nachher alle Schneeflocken, die bewegt werden müssen;
    - anzahl definiert, wieviele Flocken wir verwenden wollen;
    - tiefe legt die erste Ebene fest, auf der eine Flocke eingefügt wird;
    - pixel gibt Breite und Größe der Flocke vor;
    - seitenwind wird benötigt, um die horizontale Bewegungsrichtung zu errechnen.

    Die Flocke selbst besteht aus einer beliebigen 2x2 Pixel großen Grafik.

    Starten() ist eine Funktion, die dafür sorgt, daß jede Flocke eine Zufallsposition, einen Abweichungsfaktor vom vorgegebenen Seitenwind, ein Zufallstempo, einen Zufallsalphawert, eine fixe Größe und anschließend eine Zufallsskalierung erhält. Diese Funktion wird einmal am Anfang und anschließend jedes Mal dann, wenn eine Flocke den unteren Rand erreicht hat, aufgerufen.

    Die for-Schleife sorgt für das Einblenden der Flocken ganz am Anfang. Sie erhalten dann eine völlig zufällige x-Position und eine zufällige y-Position, die sich auf den oberen Bildschirmrand beschränkt. Hier ist durch den Parameter 10, den wir beim Aufruf von starten mitgeben, nur eine geringe Variation möglich. Außerdem wird jedes eingeblendete Objekt in ein Array eingetragen, so daß wir nachher einfach darauf zugreifen können.

    Last not least bewegt enterFrame alle Objekte und achtet darauf, ob eines bereits den unteren Rand erreicht hat. In dem Fall wird die Funktion starten erneut aufgerufen, der Objektname als Parameter übergeben, und die Flocke fällt wieder von oben herab.

    Bei diesem Code ist noch nicht berücksichtigt, wie die übrigen Animationen erstellt bzw. geskriptet werden sollen. Wenn der Text irgendwo zwischen den Flocken eingeblendet werden soll, dann würde nicht einfach eine Variable tiefe hochgezählt, sondern aus einem größeren Wertebereich jeweils eine Zufallszahl ermittelt und diese einer Flocke zugewiesen. Dann müßte man bei jedem Texteinblenden eine weitere Zufallszahl ziehen, die auch zwischen den Flocken liegen kann.

    Das Einzige, was mir momentan Kopfzerbrechen bereiten würde, wenn die Textani komplett geskriptet werden sollte, wäre der Effekt des Ausblendens; der sieht in Deinem Intro exzellent aus.

    Hoffentlich finde ich heute abend noch Zeit, ein bißchen zu basteln, ansonsten wohl erst irgendwann im Laufe des morgigen Tages.

    viel spass
     
    #16      
  17. SantaKoks

    SantaKoks Guest

    Willkommens Intro, wer kann helfen?!
    so sehe ich das au
     
    #17      
  18. h_seldon

    h_seldon Aktives Mitglied

    Dabei seit:
    13.09.2005
    Beiträge:
    338
    Geschlecht:
    männlich
    Ort:
    Nähe München
    Willkommens Intro, wer kann helfen?!
    Macht nix, TID. Da wir beide berufstätig sind, wird sich das Ganze sowieso längere Zeit hinziehen. Viel wichtiger ist ja, das andere das nachvollziehen und selbst irgendwie anwenden können, was wir hier zusammen basteln.
    SantaKoks, Blue Thunder, um keine Mißverständnisse (und bei Euch keine Enttäuschungen) aufkommen zu lassen: es geht nicht um "nur skripten" vs. "nur animieren". Auch das Intro von TID enthält Skripting, und auch meine Lösung wird Zeitleistenanis enthalten (wahrscheinlich jedenfalls). Entscheidend ist nur, die richtige Mischung zu finden und von uns zwei verschiedene Lösungsmöglichkeiten zu erhalten.
    Und zum Schluß, hoffe ich, werden wir ein gemeinsames Tutorial in der Form erstellen, wie sie beispielsweise in der Flashsektion zu finden sind.

    viele grüße
     
    #18      
  19. h_seldon

    h_seldon Aktives Mitglied

    Dabei seit:
    13.09.2005
    Beiträge:
    338
    Geschlecht:
    männlich
    Ort:
    Nähe München
    Willkommens Intro, wer kann helfen?!
    Hallo TID,

    die Fehlermeldung kommt von dem stop;, das auf dem MovieClip liegt. Das müßte in einen Frame hinein. Im konkreten Fall kannst Du es auch komplett löschen, da es nur wirksam wird, wenn auch Frames vorhanden sind, die man stoppen könnte.

    viel spaß
     
    #19      
  20. h_seldon

    h_seldon Aktives Mitglied

    Dabei seit:
    13.09.2005
    Beiträge:
    338
    Geschlecht:
    männlich
    Ort:
    Nähe München
    Willkommens Intro, wer kann helfen?!
    Erläuterung in 2 Posts: 1. zu meinem obigen Code, 2. Optimierung desselben (inklusive Anmerkung zur Syntax Flash4/5 vs. Flash MX und höher).

    Post 1: Zur Umsetzung meines obigen Codes:

    Erstelle einen MovieClip, 2 x 2 Pixel, radialer Farbverlauf (weiß - schwarz), Bibliotheks- und Verknüpfungsname ?mc-kugel?.
    Lösche den MovieClip von der Bühne, da wir ihn per Skripting einfügen.
    Schreibe in die Ebene 1 folgendes Bildskript (ohne Zeilennummerierung):

    1 this.createEmptyMovieClip("b",1);
    2 b.bewegen = [];
    3 b.anzahl = 50;
    4 b.seitenwind = -2;
    5 b.starten = function(wer){
    6 wer.abweichung = Math.random();
    7 wer._width = 2;
    8 wer._height = 2;
    9 wer._x = Math.ceil(Math.random()*810);
    10 wer._y = -50;
    11 wer.scale = Math.random()*30;
    12 wer._xscale *= wer.scale;
    13 wer._yscale *= wer.scale;
    14 wer._alpha = 100-(wer.scale*2);
    15 wer.tempo = Math.ceil(Math.random()*12)+3;
    16 }
    17 for(var i = 1; i <= b.anzahl; i++){
    18 b.attachMovie("mc_kugel","k"+i,i);
    19 var obj = b["k"+i];
    20 b.bewegen.push(obj);
    21 b.starten(obj);
    22 }
    23 b.onEnterFrame = function(){
    24 for(e in b.bewegen){
    25 if(b.bewegen[e]._y < 535){
    26 b.bewegen[e]._x += b.bewegen[e].abweichung + b.seitenwind;
    27 b.bewegen[e]._y += b.bewegen[e].tempo;
    28 }else{
    29 b.starten(b.bewegen[e]);
    30 }
    31 }
    32 }

    Erläuterung zeilenweise:
    Zeile 1: erstellt einen leeren MovieClip, um alle eingeblendeten Objekte sowie alle Variablen aufzunehmen. Wenn wir die Objekte irgendwann nicht mehr brauchen, können wir alles löschen, indem wir b.removeMovieClip() ausführen.
    Zeilen 2 ? 4: Initialisierung von Objekten: ein Array, in dem die Instanznamen aller eingeblendeten MovieClips erfasst werden; die maximale Anzahl der eingeblendeten Clips; der Seitenwind, mit dessen Hilfe wir später die leichte horizontale Bewegung der Clips definieren
    Zeilen 5 ? 16: definiert die Funktion starten(Parameter), die dafür sorgt, daß das Objekt, das im Parameter übergeben wird, an den oberen Rand gesetzt wird. Anders formuliert übergeben wir später als Parameter jeweils den Namen einer Schneeflocke. Im Einzelnen geschieht folgendes:
    - 6: eine Variable abweichung speichert, grob gesagt, einen Zufallswert zwischen 0 und 0.9. Wir brauchen diese Zahl, um den Wert für die Abweichung in der horizontalen Bewegung etwas zu variieren, also pro Flocke einen leicht veränderten Seitenwind zu haben. Wenn wir darauf verzichten, dann bewegen sich alle Flocken horizontal jeweils um zwei Pixel.
    - 7 und 8: da wir die Flocken mit _xscale bzw _yscale skalieren, müssen wir einen einheitlichen Startwert besitzen, den wir einfach mit 2 festlegen. Wer will, kann diese Zeilen mal spaßeshalber auskommentieren und dann testen.
    - 9: es wird eine zufällige x-Position zugewiesen. Genau genommen wäre es hier besser, mit der Eigenschaft Stage.width zu arbeiten anstelle einer fixen Zahl, denn dann würde Flash selbstädnig die Bühnenbreite ermitteln.
    - 10: damit alle Flocken jeweils außerhalb des Screens starten, erhalten sie eine negative y-Position.
    - 11: um jede Flocke mit einem eigenen Wert zu skalieren, wird eine entsprechende Zufallszahl generiert.
    - 12 und 13: anschließend multiplizieren wir die Eigenschaften x-Skalierung und y-Skalierung mit dieser Zufallszahl. Da die Skalierungseigenschaft in Prozent gemessen wird und wir zumeist Werte größer 0 bekommen, werden die meisten Flocken vergrößert.
    - 14: Um den Alphawert an die Größe zu binden ? je größer, desto blasser -, ziehen wir von einer 100-prozentigen Deckkraft das Doppelte unseres zuvor ermittelten Skalierungsfaktors ab. Wenn wir also beispielsweise eine Flocke mit dem Faktor 20 skalieren (das Ding wird also recht groß), dann reduzieren wir seine Deckkraft um 40%.
    - 15: jede Flocke erhält ein Zufallstempo, das zwischen 4 und 15 liegt.
    - Zeilen 17 ? 22: sie sorgen für das erstmalige Einblenden der gewünschten Anzahl an Schneeflocken ganz am Anfang. Im Einzelnen:
    - 18: ist der eigentliche Einfügen-Befehl, der auf den erstellten MovieClip zugreift, ihm einen Instanznamen zuweist und ihn auf der angegebenen Tiefe in den anfangs leeren Container namens ?b? einfügt. Im ursprünglichen Skript hatte ich noch eine eigene Variable namens ?tiefe? verwendet, um die virtuellen Ebenen der Objekte zu verwalten. Da aber in der vorliegenden Version nur die Flocken eingeblendet werden sollen und keine anderen Objekte auftauchen, kann man direkt auf die Zählvariable der for-Schleife, also auf i, zugreifen.
    - 19: um einfacher auf die Instanznamen zugreifen zu können, werden sie in einer Variablen namens ?obj? gespeichert. Wer will, kann auch darauf verzichten und jeweils direkt den Instanznamen verwenden.
    - 20: in unserem zuvor eingerichteten Array werden alle eingeblendeten Instanzen eingetragen, so daß wir immer wissen, welche Objekte vorhanden sind.
    - 21: abschließend rufen wir unsere vorher beschriebene Funktion auf, so daß jeder Flocke eine Zufallsposition, ein Zufallstempo etc. zugewiesen werden.
    - Zeilen 23 ? 32: enthalten die eigentliche Bewegung, nämlich:
    - 24: die for in-Schleife greift auf alle Objekte zu, die im Array b.bewegen enthalten sind, also auf alle Schneeflocken.
    - 25: wenn die y-Position der Flocken kleiner als 535 ist, sie sich also noch auf dem Screen befinden, ?
    - 26: ? dann bewegen wir sie in horizontaler Richtung um einen Betrag, der sich aus unserer Seitenwindvariable mit ?2 sowie einem kleinen Zufallswert ergibt, ...
    - 27: ? und in vertikaler Richtung um den in der Variablen tempo ermittelten Wert. Da jede Flocke über eine eigene Tempo-Variable verfügt, fallen sie auch verschieden schnell.
    - 28: Sind die Flocken aber schon über den unteren Rand hinaus, dann rufen wir einfach noch mal die starten()-Funktion auf, die ihnen eine neue x-Position etc. zuweist.
    Das ganze ergibt 619 Byte unter Flash MX 2004, Version 7.2.

    viel spaß
     
    #20      
Seobility SEO Tool
x
×
×