Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Funktion nach x Frames beenden“

Soulhuntress

Noch nicht viel geschrieben

Hallo ihr Lieben.
Ich absoluter Actionscript-Neuling habe mittlerweile sämtliche Foren und Google durchwühlt und nichts konnte mir wirlkich helfen.
Es geht um dieses schöne kleine Script, das ich gefunden habe, mit dem man es schneien lassen kann.

Code:
function schnee(pAnzahl, pBreite, pHoehe,pFlockenDim,pFlockenDichte) {
 for (var i = 0; i<=pAnzahl; i++) {
  this.attachMovie("fClip","flocke"+i,i);
  this["flocke"+i].skal = 60+(Math.random()*pFlockenDim);
  this["flocke"+i].alpha = 20+(Math.random()*pFlockenDichte);
  this["flocke"+i]._xscale = this["flocke"+i].skal;
  this["flocke"+i]._yscale = this["flocke"+i].skal;
  this["flocke"+i]._alpha = this["flocke"+i].alpha;
  this["flocke"+i].xpos = this["flocke"+i]._x;
  this["flocke"+i]._x = -10+(Math.random()*pBreite);
  this["flocke"+i].zufall = 1+(Math.random()*2);
  this["flocke"+i]._y = -10+(Math.random()*pHoehe);
  this["flocke"+i].wind = -Math.PI+(Math.random()*Math.PI);
  this["flocke"+i].onEnterFrame = function() {
   this.rad += ((this.wind/180)*Math.PI);
   this._x -= Math.cos(this.rad);
   this._y += this.zufall;
   if (this._y>=pHoehe) {
    this._y = -5;
   }
   if ((this._x>=pBreite) || (this._x<=0)) {
    this._x = -10+(Math.random()*pBreite);
   }
  };
 }
}
schnee(100,Stage.width,Stage.height,100,50);

Jetzt meine Frage (die für Actionscript-Fortgeschrittene sicherlich einfach zu beantworten sein wird...): ich würde es ab Frame 71 gerne aufhören lassen zu schneien. Sicher muss man da irgend etwas mit diesem delete this.onEnterFrame Befehl machen... aber was genau? :uhm:
 

Denniz

Aktives Mitglied

AW: Funktion nach x Frames beenden

Hi,

du kannst den Schnee mittels einer setInterval Methode nach einer bestimmten Zeit wieder aufhören lassen zu schneien.

PHP:
stop();
/**
*HIer das interval angeben wann der Schnee wieder enfernt werden soll
*/
var destroyTime:Number = 5000;

function schnee(pAnzahl, pBreite, pHoehe, pFlockenDim, pFlockenDichte) {
    for (var i = 0; i<=pAnzahl; i++) {
        this.attachMovie("fClip", "flocke"+i, i);
        this["flocke"+i].skal = 60+(Math.random()*pFlockenDim);
        this["flocke"+i].alpha = 20+(Math.random()*pFlockenDichte);
        this["flocke"+i]._xscale = this["flocke"+i].skal;
        this["flocke"+i]._yscale = this["flocke"+i].skal;
        this["flocke"+i]._alpha = this["flocke"+i].alpha;
        this["flocke"+i].xpos = this["flocke"+i]._x;
        this["flocke"+i]._x = -10+(Math.random()*pBreite);
        this["flocke"+i].zufall = 1+(Math.random()*2);
        this["flocke"+i]._y = -10+(Math.random()*pHoehe);
        this["flocke"+i].wind = -Math.PI+(Math.random()*Math.PI);
        this["flocke"+i].destroySnow();
        this["flocke"+i].onEnterFrame = function() {
            this.rad += ((this.wind/180)*Math.PI);
            this._x -= Math.cos(this.rad);
            this._y += this.zufall;
            if (this._y>=pHoehe) {
                this._y = -5;
            }
            if ((this._x>=pBreite) || (this._x<=0)) {
                this._x = -10+(Math.random()*pBreite);
            }
        };
    }
}
MovieClip.prototype.destroySnow = function() {
    var T_CLIP:MovieClip = this;
    var iv = setInterval(destroy, destroyTime);
    function destroy() {
        T_CLIP.removeMovieClip();
        delete T_CLIP.onEnterFrame;
        clearInterval;
    }
};
schnee(100, Stage.width, Stage.height, 100, 50);
 

Soulhuntress

Noch nicht viel geschrieben

AW: Funktion nach x Frames beenden

Danke, Denniz, aber ich bekomme es irgendwie nicht hin... :'(
Könntest du mir vielleicht noch bitte ein Beispiel zeigen, wie der Code aussähe, wenn es nach 5 Sekunden aufhören soll zu schneien? Das wäre super.
 

Denniz

Aktives Mitglied

AW: Funktion nach x Frames beenden

Hi,

das skript beendete den schneefall doch nach 5 Sekunden.

Der Zeitparameter für die setInterval Methode muß in millisekunden angegeben werden, also 5000 ms --> 5 Sek.

PS:
Hast du denn auch den Aufruf "this["flocke"+i].destroySnow();" in deiner for schleife eingefügt?
 
Zuletzt bearbeitet:

Soulhuntress

Noch nicht viel geschrieben

AW: Funktion nach x Frames beenden

Ach sooo ^^
Ich hatte einfach mal eins zu eins kopiert, was du mir geschrieben hattest, aber irgendwie schneit es trotzdem fröhlich weiter. :nee:
 

Denniz

Aktives Mitglied

AW: Funktion nach x Frames beenden

Zeig mal deine Fla,
bei mir funktioniert es nach erneutem Testen so wie es soll.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.189
Beiträge
2.582.077
Mitglieder
67.259
Neuestes Mitglied
SaschMasch1312
Oben