Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-07-2005, 19:06   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2005
Beiträge: 4
setInterval funzt nicht???

Hallo!

Ich habe ein Script geschrieben das mir einen Fortschrittsbalken für ein gestreamtes mp3, das gerade abgespielt wird, steuern soll.

Die Länge des mp3´s hab ich mir schon mit PHP ausgerechnet und die Abfrage von der Position sollte auch funktionieren!?

Nur wird leider mit setInterval die Funktion nicht ausgeführt und schon gar nicht alle 120 millisec.!??? Wenn ich die Funktion mit callback(); einmal aufrufe, wird zumindest in dem Textfeld "0" ausgegeben, da die Position höchstwahrscheinlich noch auf null steht!?

Spreche ich die Funktion oder irgendwas anderes falsch an? Zur Info - ich habe auf meinem Frame 1 einen Play Button mit dem das mp3 gestartet wird und man auf Frame 2 springt. Dort ist dann der Stop Button, der Balken und das Textfeld. Auf "steuerung: Bild2" liegt dann mein Script:

ActionScript:
  1. function callback() {
  2. var pos = Math.floor(_global.Behaviors.Sound.torso.position/time*100);
  3. this.balken.gotoAndStop(pos);
  4. this.zeitfeld.text = pos;
  5. };
  6. setInterval( callback, 120 );

Ich hab jetzt schon den ganzen Nachmittag gesucht, aber ich komm nicht dahinter was der Fehler ist!?? Ich bin nicht wirklich fit in ActionScript! Vielleicht könnt ihr mir helfen!? BITTE, DANKE!!!

Geändert von Alphawolf (08-07-2005 um 19:07 Uhr)
Alphawolf ist offline   Mit Zitat antworten
Alt 08-07-2005, 19:28   #2 (permalink)
AAI
 
Benutzerbild von AAI
 
Registriert seit: May 2004
Beiträge: 327
testen!

ActionScript:
  1. trace(pos)
  2. trace(this.balken)
  3. trace(this.zeitfeld)

Dem Interval einen Namen geben:
ActionScript:
  1. zb_int1 = setInterval(callback,120);

...damit du es später wieder löschen kannst:
ActionScript:
  1. clearInterval(zb_int1)

Geändert von AAI (08-07-2005 um 19:30 Uhr)
AAI ist offline   Mit Zitat antworten
Alt 08-07-2005, 19:44   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 16
ich habe das so - was auch funzt. Wobei Du natürlich auch die funktion zugreifbar definiert haben mußt ...

ActionScript:
  1. myRefresh;
  2. myRefresh = setInterval(myFunction, myParameta1, myParameta2, myParameta3);
  3. myFunction = function (myParameta1, myParameta2, myParameta3) {
  4. trace("das ist ein INTERVALL mit den Parametern: "+myParameta1+" , "+myParameta2+" , "+myParameta3)
  5. }

hoffe das hilft Dir. Wobei ich bei diesem Thema eine Frage habe :

Ich habe den Intervall wie oben beschriben initialisiert, nun möchte ich wenn ich einen anderen contenfilm.swf lade das an "myRefresh" angehängte Intervall wieder los werden.

Ich habe folgendes, im eingeladenen contentFilm0.swf der durch einen anderen contentFilm1.swf ersetzt wird, versucht:

ActionScript:
  1. onUnload = function () {
  2.     clearInterval(myRefresh);
  3. };

Online getestet im Internetexplorer [6.0.2900.2180] mit neuem FlashplayerPlugIn [7] : funktioniert gut.

Gleiche Seite online geöfnet mit Firefox [1.0.4] versorgt mit dem gleichen Player [7] (beides von der gleichen .exe installiert... : clearInterval(myRefresh); trit nicht ein.

Sorry wenn ich diesen Thread damit belaste aber es passt Thematisch u.U zusammen. Ist immer schwer ein Thema zu wählen wenn man den Zusammenhang von Problemen nicht einschätzen kann.

edit: ^^ AAI war schneller ;P ^^
some0ne ist offline   Mit Zitat antworten
Alt 09-07-2005, 12:38   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2005
Beiträge: 4
Hallo someOne!

Was meinst du mit "Wobei Du natürlich auch die funktion zugreifbar definiert haben mußt"?

Genau das ist denk ich mein Problem! Ich hab jetzt noch mal mit trace() getestet (Danke AAI!) und bin draufgekommen, dass die Funktion nicht ausgeführt wird!? Weder mit setIntervall und auch nicht direkt mit callback();

Ich hab es mittlerweile so:
ActionScript:
  1. callback = function () {
  2.         var pos = Math.floor(_global.Behaviors.Sound.torso.position/time*100);
  3.         this.balken.gotoAndStop(pos);
  4.         this.zeitfeld.text = pos;
  5. };
  6. intervall = setInterval( callback, 120 );
  7.  
  8. trace(callback);
  9. trace(intervall);
  10. trace(pos);

trace liefert folgende Ausgabe:
[type Function]
1
undefined

Bin dankbar für jeden Tipp!
Alphawolf ist offline   Mit Zitat antworten
Alt 09-07-2005, 13:12   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Guck mal ob's so geht:
ActionScript:
  1. callback = function () {
  2.     var pos = Math.floor(_global.Behaviors.Sound.torso.position/time*100);
  3.     balken.gotoAndStop(pos);
  4.     zeitfeld.text = pos;
  5. };
  6. intervall = setInterval(callback, 120);
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 09-07-2005, 13:33   #6 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 16
Zitat:
Zitat von Alphawolf
Hallo someOne!

Was meinst du mit "Wobei Du natürlich auch die funktion zugreifbar definiert haben mußt"?

...

Ich hab es mittlerweile so:
ActionScript:
  1. callback = function () {
  2.         var pos = Math.floor(_global.Behaviors.Sound.torso.position/time*100);
  3.         this.balken.gotoAndStop(pos);
  4.         this.zeitfeld.text = pos;
  5. };
  6. intervall = setInterval( callback, 120 );
  7.  
  8. trace(callback);
  9. trace(intervall);
  10. trace(pos);
...
ich habe meine funktion in der gleichen Hirachie wie mein "setIntervall" s. code einen Post ^^.

wenn Du in deiner "calback" -funktion "this.balken." schreibst wird es denke ich nicht klappen weil die funktion "callback" (= this.) - kein Element balken (mc der mit "gotoAndStop" angewiesen werden kann), besitzt.

wenn du alles in einem Frame hast versuch mal ganz einfach :

ActionScript:
  1. callback = function () {
  2.         var pos = Math.floor(_global.Behaviors.Sound.torso.position/time*100);
  3.         trace(pos)
  4.         balken.gotoAndStop(pos);
  5.         zeitfeld.text = pos;
  6. };
  7. intervall = setInterval( callback, 120 );

dannn sollte aber "balken" & "zeitfeld" auf der gleichen Zeitleiste wie das script liegen und nicht weiter verschachtelt sein.

wie wäre den mal ein scriptupload ... bei sowas treten gerne fehler bei Ansprachen auf ...
some0ne ist offline   Mit Zitat antworten
Alt 09-07-2005, 14:38   #7 (permalink)
Neuer User
 
Registriert seit: Jul 2005
Beiträge: 4
Jetzt läuft das Ding! Genau da lag der Fehler! Ich hab nicht gecheckt, dass sich "this" auf die Funktion bezieht!

Vielen Dank an alle die geholfen haben!!!
Alphawolf 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:40 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele