Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-12-2003, 11:45   #1 (permalink)
wissbegierig
 
Registriert seit: Nov 2003
Ort: Hamburg
Beiträge: 206
übergebene var als funktion aufrufen

Irgendwie stelle ich mich zu blöd an.
Folgendes, habe mir eine warten-funktion gebaut, die nach bestimmter Zeit eine funktion aufrufen soll:

ActionScript:
  1. MovieClip.prototype.delay = function(delaysec, aufruf){
  2.     this.onLoad = function(){
  3.         var count = 0;
  4.         }
  5.     this.onEnterFrame = function(){
  6.         if((count/fps) < delaysec){
  7.             count ++;
  8.             }else{
  9.                 aufruf();
  10.                 trace(aufruf());
  11.                 }
  12.             }
  13.         }

So sieht der Aufruf meiner Delay-Function aus:

ActionScript:
  1. delay(5,moveMe);
  2. // er soll also nach 5 sec, die existierende funktion moveMe aufrufen
  3.  

Geht aber nicht!?
Habe es auch schon bereits mit call aufruf(); versucht etc.

Wer kann helfen?
PIXIX ist offline   Mit Zitat antworten
Alt 05-12-2003, 11:55   #2 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
ActionScript:
  1. aufruf=function(){
  2. trace("ja") 
  3. }
  4. delay =function(func){
  5.  trace("hallo")
  6.  clearInterval(id);
  7.  func()
  8. }
  9. id = setInterval(delay , 4000, aufruf);
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 05-12-2003, 12:01   #3 (permalink)
wissbegierig
 
Registriert seit: Nov 2003
Ort: Hamburg
Beiträge: 206
Hi Harry,

sowas habe ich mir auch schon gedacht aber irgendwie finde ich die Lösung nicht schön :-( Aber wenn es anders nicht geht.

Gruß
Florian
PIXIX ist offline   Mit Zitat antworten
Alt 05-12-2003, 12:12   #4 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
dat verstehe ich jetzt aber nicht.
oEF der da läuft ist ja wohl nicht das wahre
onLoad hat ja so überhaupt keinen sinn
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 05-12-2003, 12:23   #5 (permalink)
wissbegierig
 
Registriert seit: Nov 2003
Ort: Hamburg
Beiträge: 206
Hi Harry,

die Lösung ist ja nicht wirklich dynamisch :-(
Ich dachte mir einfach ich baue eine Funktion mit einem counter.
Welcher nach den übergebenen sec. die übergebene funktion aufruft.

Ich wollte diese Warten-Funktion halt öfters verwenden, in dem ich einfach nur die delay funktion aufrufe und sage wieviele sec er warten soll bis die funktion aufgerufen wird.

ActionScript:
  1. MovieClip.prototype.delay = function(delaysec, aufruf){
  2.     this.onEnterFrame = function(){
  3.         if((count/fps) < delaysec){
  4.             count ++;
  5.             }else{
  6.                 aufruf; // hier soll die übergebene funktion aufgerufen werden
  7.                 delete this.onEnterFrame;
  8.                     }
  9.                 }
  10.         }

Aufruf:
ActionScript:
  1. delay(wievieleSecWarten,welcheVorhandeneFunktionSollIchAufrufen);

Mit dem onLoad hast Du recht :-)

Naja, wenn es keine andere Lösung als mit setInterval gibt, muß ich wohl darauf zurück greifen.

Danke.

Gruß
Florian
PIXIX ist offline   Mit Zitat antworten
Alt 05-12-2003, 12:34   #6 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
sorry aber was macht den das hier
ActionScript:
  1. moveme=function(){
  2.         trace("funktion wurde von delay aufgerufen")
  3. }
  4. delay =function(func){
  5.         trace("rufe function auf")
  6.         clearInterval(id);
  7.         func()
  8. }
  9. id = setInterval(delay , 4000, moveme);
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 05-12-2003, 13:10   #7 (permalink)
wissbegierig
 
Registriert seit: Nov 2003
Ort: Hamburg
Beiträge: 206
Hast recht.

Danke Dir. Dachte nur es würde anders auch gehen.

Gruß
Florian
PIXIX ist offline   Mit Zitat antworten
Alt 05-12-2003, 13:32   #8 (permalink)
Neuer User
 
Benutzerbild von K-Grabowski
 
Registriert seit: Jan 2003
Ort: Arminia!!!! Bielefeld
Beiträge: 1.138
Geht auch anders, du musst nur die Variablen an deinen MovieClip übergeben, da sie in der Funktion ja nur temporär vorhanden sind.

ActionScript:
  1. MovieClip.prototype.delay = function(delaysec, aufruf){
  2.         this.count = 0;
  3.         this.delaysec = delaysec;
  4.         this.aufruf = aufruf;
  5.         this.onEnterFrame = function(){
  6.                 if(this.count < this.delaysec){
  7.                         this.count ++;
  8.                 }else{
  9.                         this.aufruf();
  10.                         delete this.onEnterFrame;
  11.                 }
  12.         }
  13. }
  14.  
  15.  
  16. meinaufruf = function () {
  17.     trace("jetzt");
  18. }
  19.  
  20. createEmptyMovieClip("dummy",100);
  21.  
  22. dummy.delay(20,meinaufruf);

ist allerdings nicht sonderlich elegant
vielleicht wärs besser wenn du in deiner delay Funktion noch nen leeren MC in deinem erstellst und diesen dann die oEF-Methode ausführen lässt
__________________
Wieviel hätte ich also für dieses Fahrzeug zu investieren???

Geändert von K-Grabowski (05-12-2003 um 13:35 Uhr)
K-Grabowski ist offline   Mit Zitat antworten
Alt 05-12-2003, 13:50   #9 (permalink)
wissbegierig
 
Registriert seit: Nov 2003
Ort: Hamburg
Beiträge: 206
Hi,

genau das wollte ich haben

Also war bei mir nur ein Fehler drinnen

Danke Dir.

Gruß
Florian
PIXIX ist offline   Mit Zitat antworten
Alt 05-12-2003, 14:02   #10 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
ActionScript:
  1. moveme = function (o) {
  2.     trace("funktion wurde von delay aufgerufen MC=" +o)
  3. };
  4. MovieClip.prototype.delay = function(func) {
  5.     clearInterval(this.id);
  6.     func(this);
  7. };
  8. mc0.id = setInterval(mc0, "delay", 2000, moveme);
  9. mc1.id = setInterval(mc1, "delay", 5000, moveme);
__________________
gruß Harry

Geändert von HAY (05-12-2003 um 14:03 Uhr)
HAY ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 07:49 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele