Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-10-2003, 17:12   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 4
zeitgesteuerte Präsentation von swf

Hallo zusammen,

Ich muss kurzfristig eine Präsentation von .swf-Dateien zusammenstellen, in der die swf nacheinander ablaufen ohne User-Interaktion.
Wie kann ich das wohl am besten anstellen.
per getTimer() müsste war mein erster Gedanke. Jedoch stellt sich das bei der Anzahl von swf und bei den unterschiedlchen Dauern als ziemlich umfangreich heraus. Gibt es da noch eine andere Möglichkeit?

Und meine 2. Frage: Kann ich in dieser Angelegenheit die Start-Buttons solcher swf automatisch umgehen?


Vielen Dank im voraus


bubu
bubu ist offline   Mit Zitat antworten
Alt 20-10-2003, 17:51   #2 (permalink)
Neuer User
 
Benutzerbild von virtualize
 
Registriert seit: Aug 2003
Ort: Zürich
Beiträge: 120
ne idee hätte ich.
wie wärs mit einer rekursiven setInterval function?
also so in der art:

du schreibst dir ein array was den swf namen und die anzuzeigende dauer enthält (kannste auch aus ner text datei erstellen lassen).

dann eine function die als parameter diese 2 werte aus dem array übernimmt und die dauer an eine setInterval function innerhalb übergibt, diese enthält dann wieder eine function die das swf laden übernimmt, wenn geladen, dann eleminierst du das setInterval und rufst die hauptfunction neu auf mit neuem array-index und somit neuer zeit und neuem swf namen, das setInterval wartet dann wieder so lang wie dauer eben ist, bevor es das neue swf lädt.

klingt ein wenig kompliziert, ist aber denke ich einfacher zu lösen als via getTimer(aber auch da kannst mit nem array was zeiten enthält arbeiten)
virtualize ist offline   Mit Zitat antworten
Alt 20-10-2003, 20:16   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 4
hey cool... ich hatte auch schon an nen array gedacht und an das setInterval. nur nicht in der Kombination.

ich hatte es irgendwann weitaus komplizierter und über zig Umwege gelöst. Aber Deine Lösung ist defintiv die bessere!

da kann ich das auch noch einfacher füttern und ggf schnell abändern :-)

Danke Dir! Vielen Dank!

klasse... das vereinfacht mir die Arbeit enorm :-)
bubu ist offline   Mit Zitat antworten
Alt 20-10-2003, 22:39   #4 (permalink)
Neuer User
 
Benutzerbild von virtualize
 
Registriert seit: Aug 2003
Ort: Zürich
Beiträge: 120
bleibt nur noch das problem mit dem hochzählen des array index, den counter musst du wohl ausserhalb der ganzen function plazieren und von innerhalb via _global.count oder _root.count "uppen"....
virtualize ist offline   Mit Zitat antworten
Alt 21-10-2003, 08:36   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 4
naja... anscheinend ist genau das mein Problem.
ich habe es jetzt soweit geschafft, dass die Filme eingespielt werden.
und wenn ich das Interval manuell setze, funktioniert es reibungslos. aber das ist ja nicht im Sinne des Erfinders.
vielleicht könnt Ihr mir da noch mal unter die Arme greifen und mir ein bißchen helfen.
ich merke, ich bin eben doch noch gnadenloser Anfänger...

ActionScript:
  1. arrDateien = new Array("01.swf", "02.swf");
  2. arrDauer = new Array(5000, 10000);
  3. i = 0;
  4. j = 0;
  5. ins_mc.loader = function() {
  6.     ins_mc.loadMovie(arrDateien[i], 1);
  7.     trace(arrDateien[i]);
  8.     trace(arrDauer[j]);
  9.     i++;
  10.     j++;
  11.     if (i == arrDateien.length) {
  12.         i = 0;
  13.     }
  14.     if (j == arrDateien.length) {
  15.         j = 0;
  16.     }
  17. };
  18. setInterval(ins_mc.loader,arrDauer[j]);

also das Interval wird einmal gesetzt und dann bleibt es so. Ich möchte, dass es dem Array entsprechend gesetzt wird. So, dass ich nur noch Film und Filmdauer in die Arrays einsetzen muss und gut ist.
Kann mir da noch jemand helfen?
Wäre klasse!
Ich scheine da nen Riesen-Denkfehler oder ein klares Defizit zu haben...
bubu ist offline   Mit Zitat antworten
Alt 21-10-2003, 17:45   #6 (permalink)
Neuer User
 
Benutzerbild von virtualize
 
Registriert seit: Aug 2003
Ort: Zürich
Beiträge: 120
hab dir das mal fertig geschrieben, so wie ich es
mir dachte. falls du fragen hast meld dich einfach nochmal, functionieren tu es jedenfalls recht gut.

ActionScript:
  1. stop();
  2. // 2-dimensionales Array erstellen und füllen, (Sekunden und Filmname)
  3. myArr = new Array();
  4. myArr[0] = new Array("2", "film1");
  5. myArr[1] = new Array("4", "film2");
  6. myArr[2] = new Array("6", "film3");
  7. myArr[3] = new Array("8", "film4");
  8.  
  9. // ein Laufvariable die später hochgezählt wird
  10. a_count = 0;
  11.  
  12. // rekursive Funtion
  13. function loadMySWFs (arr, cnt) {
  14.     clearInterval(id);
  15.     //Auf das Ende des Arrays achten
  16.     if(cnt<arr.length) {
  17.         _root.a_count++;
  18.         wait = arr[cnt][0];
  19.         file = arr[cnt][1];
  20.         //die ganze Function neu aufrufen und neue Variablen übergeben
  21.         id = setInterval(loadMySWFs, wait*1000, _root.myArr, _root.a_count);
  22.         trace("Ich warte jetzt "+wait+" Sekunden!");
  23.         //einen Neuen Film in Ebene1 laden
  24.         loadMovieNum([file+".swf"], 1);
  25.     }
  26. }
  27.  
  28. // na dann mal los
  29. loadMySWFs(myArr, a_count);
virtualize ist offline   Mit Zitat antworten
Alt 21-10-2003, 19:22   #7 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 4
cool Danke!

ich werde das morgen mal austesten.
leider musste ich es anders regeln, weil die Präsentation heute raus musste, damit sie morgen auf der Messe laufen kann.

mich ärgert es zwar ungemein, dass ich da jetzt so ne blöde Lösung hingestellt habe, aber sie funktioniert wenigstens. auch wenn es ziemlich amateurhaft ist.

aber ich bin Dir sehr dankbar für Deine Lösung. ich wäre den Gedanken sonst nie losgeworden :-)
ich werde es morgen auch gleich umschreiben.
und helfen wird es mir für die Zukunft mit Sicherheit auch sehr

nochmal vielen Dank!!
bubu 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 15:34 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele