Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-01-2005, 14:42   #1 (permalink)
rookie
 
Benutzerbild von rok°!
 
Registriert seit: Apr 2002
Beiträge: 370
funktionen zeitversetzt aufrufen

hallo!

ich hab 4 verschiedene funktionen, die ich nacheinander (im abstand von 2 sekunden) aufrufen möchte. mach ich das mit setInterval? und wenn ja, wie?
__________________
Das Newslettersystem auf deiner Homepage!
rok°! ist offline   Mit Zitat antworten
Alt 06-01-2005, 14:52   #2 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
nur einmal jede funktion, oder willst du die immer wieder aufrufen?

greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 06-01-2005, 15:03   #3 (permalink)
Neuer User
 
Benutzerbild von ultrarustikal
 
Registriert seit: Sep 2003
Beiträge: 67
Z.B. so im Groben:

ActionScript:
  1. funktion1 = function(){
  2.     trace("funktion1");
  3. }
  4. funktion2 = function(){
  5.     trace("funktion2");
  6. }
  7. funktion3 = function(){
  8.     trace("funktion3");
  9. }
  10. funktion4 = function(){
  11.     trace("funktion4");
  12. }
  13.  
  14. zaehler = 1;
  15.  
  16. masterFunktion = function(){
  17.     if(zaehler <= 4){
  18.         eval("_root.funktion"+zaehler)();
  19.         zaehler++;
  20.     }
  21.     else{
  22.         clearInterval(interval);
  23.         trace("gelöscht");
  24.     }
  25. }
  26.  
  27. interval = setInterval(masterFunktion,2000);
ultrarustikal ist offline   Mit Zitat antworten
Alt 06-01-2005, 15:12   #4 (permalink)
rookie
 
Benutzerbild von rok°!
 
Registriert seit: Apr 2002
Beiträge: 370
yup!

eigentlich ist es eine prototype-function, immer mit nem anderen mc:

mcxy.prtypefunc(parameter);
^^ und das mcxy ändert sich eben. sind aber nicht nur zahlen... :S
__________________
Das Newslettersystem auf deiner Homepage!
rok°! ist offline   Mit Zitat antworten
Alt 06-01-2005, 15:18   #5 (permalink)
Neuer User
 
Benutzerbild von ultrarustikal
 
Registriert seit: Sep 2003
Beiträge: 67
Kannste ja z.B. auch in einem Array lösen:

ActionScript:
  1. funktion1 = function(){
  2.     trace("funktion1");
  3. }
  4. funktion2 = function(){
  5.     trace("funktion2");
  6. }
  7. funktion3 = function(){
  8.     trace("funktion3");
  9. }
  10. funktion4 = function(){
  11.     trace("funktion4");
  12. }
  13.  
  14. zaehler = 0;
  15. funktionen = ["_root.funktion1","_root.funktion2","_root.funktion3","_root.funktion4"];
  16.  
  17. masterFunktion = function(){
  18.     if(zaehler < funktionen.length){
  19.         eval(funktionen[zaehler])();
  20.         zaehler++;
  21.     }
  22.     else{
  23.         clearInterval(interval);
  24.         trace("gelöscht");
  25.     }
  26. }
  27.  
  28. interval = setInterval(masterFunktion,2000);

So kannst Du jede beliebige Funktion in's Array einsetzen
ultrarustikal ist offline   Mit Zitat antworten
Alt 06-01-2005, 15:41   #6 (permalink)
rookie
 
Benutzerbild von rok°!
 
Registriert seit: Apr 2002
Beiträge: 370
hm, geht irgendwie nicht so richtig.

mein array "funktionen" sieht bei mir so aus

funktionen = ["_root.mcname.funcname(para1, para2, para3, para4)",
"_root.mcname.funcname(para1, para2, para3, para4)",
...
];
__________________
Das Newslettersystem auf deiner Homepage!
rok°! ist offline   Mit Zitat antworten
Alt 06-01-2005, 15:44   #7 (permalink)
Neuer User
 
Benutzerbild von ultrarustikal
 
Registriert seit: Sep 2003
Beiträge: 67
Die Parameter gehören dann in den Bereich des Funktionsaufrufs bei:

ActionScript:
  1. eval(funktionen[zaehler])();

Entweder noch ein Array für die Parameter bauen, oder das Array zweidimensional gestalten.

So bei einem zweitem Array namens parameter:

ActionScript:
  1. eval(funktionen[zaehler])(parameter[zaehler]);

Geändert von ultrarustikal (06-01-2005 um 15:45 Uhr)
ultrarustikal ist offline   Mit Zitat antworten
Alt 06-01-2005, 15:52   #8 (permalink)
rookie
 
Benutzerbild von rok°!
 
Registriert seit: Apr 2002
Beiträge: 370
prima, mit den auslagern der parameter klappt's
danke.

da ich einmal den kleinen finger in der hand hab, reiß ich mal noch ein bisschen dran

ich möchte nun die im array stehenden mc's unsichtbar machen, bevor sie aufgerufen werden. sieht sonst kacke aus.
allerdings gibts hier 2 probs:
1. ich muss den namen der prototype-function da irgendwie rauskriegen (vielleicht mit an das eval kleben?)
2. ich kenn mich eben mit der eval func nicht aus. wie muss dann der befehl lauten, angenommen im array steht dann nur "_root.mcname", wenn ich _root.mcname._alpha=0 haben möchte?
__________________
Das Newslettersystem auf deiner Homepage!
rok°! ist offline   Mit Zitat antworten
Alt 06-01-2005, 16:59   #9 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
hey hey hey...ich zeig euch mal, dass das auch ohne auslagern der parameter geht..

ActionScript:
  1. funktionen = ["_root.myMC.traceArgs(para1, para2, para3, para4)", "_root.mcname.funcname(para1, para2, para3, para4)"];
  2. para1 = 'erstes';
  3. para2 = 'zweites';
  4. para3 = 'drittes';
  5. para4 = 'viertes';
  6.  
  7. // zum test mal schnell nen mc erstellt und ne funktion in dem mc
  8. this.createEmptyMovieClip('myMC', 1234);
  9. this['myMC'].traceArgs = function(a, b, c, d) {
  10.     trace(a+' || '+b+'  ||  '+c+'  ||  '+d);
  11. };
  12.  
  13. // mal schauen, was da so rauskommt bei..
  14. var elem = funktionen[0];
  15.  
  16. var endpfad = elem.lastIndexOf('.');
  17. var klammer = elem.indexOf('(');
  18. var func = elem.substring(endpfad+1, klammer);             
  19. var path = elem.substring(0,endpfad);
  20. var param = elem.substring(klammer+1, (elem.length-1)).split(' ').join('').split(',');
  21.  
  22. // die hammerzeile überhaupt *gg*
  23. eval(path)[func].apply(null, param);
  24.  
  25. /*
  26. //oder zum besseren lesen:
  27. var fkt = eval(path)[func];
  28. fkt.apply(null, param);
  29. */



greetz

kelor


[EDIT:]

uupps...das war der falsche code...sekunde

Geändert von kelor (06-01-2005 um 17:03 Uhr) Grund: weil ich blöd bin...*g*
kelor ist offline   Mit Zitat antworten
Alt 06-01-2005, 17:04   #10 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
Code:
eval(path)[func].apply(null, param);
goil.
__________________
8bm | join ff@BOINC
formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn
the binary ist offline   Mit Zitat antworten
Alt 06-01-2005, 17:19   #11 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
Talking @binary

hier nun die korrekten, ausgewerteten params...

ActionScript:
  1. funktionen = ["_root.myMC.traceArgs(para1,para2,para3,para4)", "_root.mcname.funcname(para1, para2, para3, para4)"];
  2. para1 = 'erstes';
  3. para2 = 'zweites';
  4. para3 = 'drittes';
  5. para4 = 'viertes';
  6.  
  7. // zum test mal schnell nen mc erstellt und ne funktion in dem mc
  8. this.createEmptyMovieClip('myMC', 1234);
  9. this['myMC'].traceArgs = function(a, b, c, d) {
  10.     trace(a+' || '+b+'  ||  '+c+'  ||  '+d);
  11. };
  12.  
  13. // mal schauen, was da so rauskommt bei..
  14. var elem = funktionen[0];
  15.  
  16. var endpfad = elem.lastIndexOf('.');
  17. var klammer = elem.indexOf('(');
  18. var func = elem.substring(endpfad+1, klammer);             
  19. var path = elem.substring(0,endpfad);
  20. var param = elem.substring(klammer+1, (elem.length-1)).split(' ').join('').split(',');
  21. for(var i=0; i<param.length; i++){
  22.     var tmp = _root[param[i]];
  23.     param[i] = tmp;
  24. }
  25.  
  26.  
  27. // die hammerzeile überhaupt *gg*
  28. eval(path)[func].apply(null, param);
  29.  
  30. /*
  31. //oder zum besseren lesen:
  32. var fkt = eval(path)[func];
  33. fkt.apply(null, param);
  34. */


hähä....


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 06-01-2005, 17:27   #12 (permalink)
rookie
 
Benutzerbild von rok°!
 
Registriert seit: Apr 2002
Beiträge: 370
hm, danke für die mühe, aber bei mir tut sich da nix.

wenn du evtl. noch kurz erklären könntest, was was macht, wäre ich dir dankbar.
__________________
Das Newslettersystem auf deiner Homepage!
rok°! ist offline   Mit Zitat antworten
Alt 06-01-2005, 17:38   #13 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
was heißt hier: ' da tut sich nix' ????

wie meinst du das? da tut sich nix? *gugg*

was soll denn daran nicht gehen?

kopier das mal in nen leeren film und teste mal...das läuft wunderbar...
ansonsten zeig mal deinen code her, den du hast...


greetz


kelor
kelor ist offline   Mit Zitat antworten
Alt 06-01-2005, 17:44   #14 (permalink)
rookie
 
Benutzerbild von rok°!
 
Registriert seit: Apr 2002
Beiträge: 370
liegt's vielleicht daran, dass ich auf nen prototype zugreife?
__________________
Das Newslettersystem auf deiner Homepage!
rok°! ist offline   Mit Zitat antworten
Alt 06-01-2005, 17:56   #15 (permalink)
rookie
 
Benutzerbild von rok°!
 
Registriert seit: Apr 2002
Beiträge: 370
hm, ich blick da wirklich nicht durch.
ich hab das skript jetzt mal rüberkopiert. also funktionieren tut es. aber ich verstehe nicht, wie ich damit mein problem lösen soll
__________________
Das Newslettersystem auf deiner Homepage!
rok°! 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 13:55 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele