Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 31-01-2006, 11:29   #1 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
setInterval()

Hallo,

die setInterval() Methode macht mich wahnsinning. Jemand helfe mit bitte.
Folgender Code ist in dem ersten Frame eines SWF. Es wird eine Slideshow aufgerufen und der Inhalt alle 8 Sekunden verändert.

Nun möchte ich diese Slideshow in Frame 10 ebenfalls verwenden, allerdings mit ein paar weniger Personen. In Frame 10 steht der Aufruf:

ActionScript:
  1. aPerson.splice(0, 6); // löschen einiger Personen
  2. startSlides();

Wenn nun Frame 1 gestartet wurde und der Benutzer klickt auf einen Menüpunkt, um zu Frame 10 zu springen, dann sind die Zeiten zwischen den Bildern ganz unterslchiedlich.
Das Interval scheint entweder nicht beenddet zu sein oder es laufen zwei.
In der Hilfe steht irgendetwas davon, dass man den Scope mit an die setInterval()
übergeben muss. Schreibe ich aber setInterval(this, function() ... dann läuft sie gar nicht mehr ab.
Bin ratlos.

Wer weiß Rat?


Das steht in Frame 1:

ActionScript:
  1. stop();
  2. _level0.mcBackground.attachMovie("background3x", "mcBackground", 0);
  3.  
  4. var nZ:Number;
  5. var aPerson:Array;
  6. var mcOpinions:MovieClip;
  7. var nIntervalOpinions:Number;
  8.  
  9. mcOpinions = this.createEmptyMovieClip("mcOpinions", this.getNextHighestDepth());
  10. mcOpinions._x = 0;
  11. mcOpinions._y = 193;
  12.  
  13. mcOpinions.createEmptyMovieClip("mcImage", mcOpinions.getNextHighestDepth());
  14. mcOpinions.mcImage._x = 18;
  15. mcOpinions.mcImage._y = 25;
  16.  
  17. mcOpinions.createTextField('tName', mcOpinions.getNextHighestDepth(), 10, 167, 130, 30);
  18. with(mcOpinions.tName) {
  19.     autoSize = "left";
  20.     html = true;
  21.     multiline = true;
  22.     selectable = false;
  23.     type = "dynamic";   
  24.     wordWrap = true;
  25. }
  26.  
  27. mcOpinions.createTextField('tComment', mcOpinions.getNextHighestDepth(), 10, 220, 166, 66);
  28. with(mcOpinions.tComment) {
  29.     autoSize = "left";
  30.     html = true;
  31.     multiline = true;
  32.     selectable = false;
  33.     type = "dynamic";   
  34.     wordWrap = true;   
  35. }
  36.  
  37. aPerson = new Array();
  38. aPerson[0] = new Object();
  39. aPerson[0]['name'] = 'Hans Wurst';
  40. aPerson[0]['comment'] = '"Hallo"'
  41. aPerson[0]['mc'] = 'mcHans';
  42.  
  43. // etc (weitere Pesonen und Kommentare)
  44.  
  45. startSlides();
  46.  
  47. function startSlides():Void {
  48.     nZ = 0;
  49.     clearInterval(nIntervalOpinions);
  50.     mcOpinions.mcImage.attachMovie(aPerson[nZ]['mc'], 'mc'+nZ, 0);
  51.     mcOpinions.tName.text = aPerson[nZ]['name'];
  52.     mcOpinions.tComment.text = aPerson[nZ]['comment'];
  53.     nZ = 1;
  54.     nIntervalOpinions = setInterval(this, function() {
  55.         mcOpinions.mcImage['mc'+nZ].removeMovieClip();
  56.         if(nZ == aPerson.length) {
  57.             nZ = 0;
  58.         }
  59.         mcOpinions.mcImage.attachMovie(aPerson[nZ]['mc'], "mc"+nZ, 0);
  60.         mcOpinions.tName.text = aPerson[nZ]['name'];
  61.         mcOpinions.tComment.text = aPerson[nZ]['comment'];
  62.         nZ++;
  63.     }, 8000);
  64. }
compuboy1010 ist offline   Mit Zitat antworten
Alt 31-01-2006, 14:02   #2 (permalink)
ActionScriptler
 
Benutzerbild von .:morpher:.
 
Registriert seit: Jun 2002
Ort: auheim
Beiträge: 1.654
Hi!
Kannst Du mal eine Fla Datei mit dem AS zum Testen hochladen?
__________________
CU @ MY SITE

FOLLOW ME ON TWITTER
.:morpher:. ist offline   Mit Zitat antworten
Alt 31-01-2006, 14:37   #3 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Das ist komisch. Also, da die swf so nicht eigens lauffähig ist(braucht sharedlib.swf und ist eingebettet in einen master) habe ich eine Kopie erstellt und alles rausgelöscht was nicht zur Slideshow gehört(die komplette lib) gehört.

So funktioniert sie Kopie nun. Woran kann das liegen? Es muss also an dem anderen Code liegen. Aber ich verwende nirgens eine andere setInterval Funktion. Woran könnte das liegen?
compuboy1010 ist offline   Mit Zitat antworten
Alt 31-01-2006, 14:42   #4 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Hier ist die testdatei.

http://www.freefileupload.net/file.p.../news_test.zip
compuboy1010 ist offline   Mit Zitat antworten
Alt 31-01-2006, 16:10   #5 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Das ist ja sehr interessant. Plaziere ich einen Button neben die Slideshow mit
der man zu Frame 20 springen kann und klickt man drauf dann funzt die Slideshow auch in frame 20 normal. Die Abstände zwischen den Slides sind dann auch 10 Sekunden lang.
Benutzt man aber das Menü (menubar Kmomponente, dann spielt die Slideshow nach dem Sprung verrückt. Woran kann das nur liegen?

Hier ein Auszug aus dem Menü.

ActionScript:
  1. function loadMe(toLabel) {
  2.     this.onEnterFrame = function() {
  3.         if (_root.mcMain.getBytesLoaded() >= _root.mcMain.getBytesTotal() && _root.mcMain.getBytesLoaded()>10) {
  4.             delete this.onEnterFrame;
  5.             _level0.mcMain.gotoAndStop(toLabel);
  6.             _level0.mcMain._visible = true;
  7.             _level0.mcBackground._visible = true;
  8.             _level0.mcFooter._visible = true;
  9.         }
  10.     };
  11. }
  12.  
  13. var fileListen = new Object();
  14. fileListen.change = function(evt:Object) {
  15. // etc
  16.   switch (item) {
  17. //Aktuelles  
  18.   case menu.newProducts :
  19.       loadMovie("de/aktuelles/news.swf", _root.mcMain);
  20.       loadMe("newProducts")
  21.       break;
  22.  
  23. // etc
  24.   case menu.link :
  25.       loadMovie("de/service/service.swf", _root.mcMain);
  26.       loadMe("link");
  27.       break;
  28.   default :
  29.       trace("no case tested true");
  30.   }
  31. };

Geändert von compuboy1010 (31-01-2006 um 16:13 Uhr)
compuboy1010 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 06:38 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele