Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-12-2006, 20:16   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 36
Problemchen bei clearInterval

Hi, könnt ihr mir bitte helfen, ich versuch die Funktion von seinen Interval zu befreien...

Code:
function loadsong() {
	_root.createEmptyMovieClip("sound_mc", this.getNextHighestDepth());
	_root.sound_mc.song = new Sound();
	_root.sound_mc.song.loadSound(songpfad, true);
	_root.sound_mc.song.setVolume(0);

	var inter_load:Number = setInterval(loadprogress, 100, _root.sound_mc.song);

	function loadprogress(soundObj:Object):Void {

		var numBytesLoaded:Number = soundObj.getBytesLoaded();
		var numBytesTotal:Number = soundObj.getBytesTotal();
		var numPercentLoaded:Number = Math.floor(numBytesLoaded/numBytesTotal*100);

		if (!isNaN(numPercentLoaded)) {
			if (numPercentLoaded=100 || numBytesLoaded>500) {
				_root.sound_mc.song.setVolume(0);
				playmusic()
				trace("bluuub");
				clearInterval(inter_load);  //  <<<--------
				var inter_zeit:Number = setInterval(zeitanzeige, 100);
				var inter_text:Number = setInterval(lauftext, 500);
				
			} else {
				playertext.text = "Buffering: "+numPercentLoaded+" %";
			}
		}
	}
}
Nachtritter ist offline   Mit Zitat antworten
Alt 13-12-2006, 20:39   #2 (permalink)
DeRailed
 
Benutzerbild von klickverbot
 
Registriert seit: Sep 2006
Beiträge: 321
Hm, diese Kurzversion funktioniert einwandfrei:
ActionScript:
  1. function test1() :Void {
  2.     var intervalID :Number = setInterval( test2, 500 );
  3.    
  4.     function test2() :Void {
  5.         trace( intervalID );
  6.         clearInterval( intervalID );
  7.     }
  8. }
  9. test1();

Funktioniert es, wenn du der loadprogress-Funktion die Intervall-ID als Parameter übergibst?

Das einzige, was ich mir im Moment vorstellen kann, ist, dass inter_load aus irgendeinem Grund nicht mehr definiert ist, wenn deine loadprogress-Funktion das Intervall entfernen will (schon per trace überprüft?)

Sonst fällt mir eigentlich nichts auf, was nicht stimmen könnte. (außer dass du extra einen Parameter soundObj hast, aber direkt auf _root.sound_mc.song zugreifst)
klickverbot ist offline   Mit Zitat antworten
Alt 13-12-2006, 22:16   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 302
vorab ganz schlecht ist es Funktionen in Funktionen zu definieren. Ausserdem stirbt deine Variable inter_load nach dem Beenden des Funktionsaufruf loadsound.

Hier die Lösung:
PHP-Code:
var inter_load:Number;

function 
loadsong() {
    
_root.createEmptyMovieClip("sound_mc"this.getNextHighestDepth());
    
_root.sound_mc.song = new Sound();
    
_root.sound_mc.song.loadSound(songpfadtrue);
    
_root.sound_mc.song.setVolume(0);

    var 
inter_load:Number setInterval(loadprogress100_root.sound_mc.song);
}

function 
loadprogress(soundObj:Object):Void {

        var 
numBytesLoaded:Number soundObj.getBytesLoaded();
        var 
numBytesTotal:Number soundObj.getBytesTotal();
        var 
numPercentLoaded:Number Math.floor(numBytesLoaded/numBytesTotal*100);

        if (!
isNaN(numPercentLoaded)) {
            if (
numPercentLoaded=100 || numBytesLoaded>500) {
                
_root.sound_mc.song.setVolume(0);
                
playmusic()
                
trace("bluuub");
                
clearInterval(inter_load);  //  <<<--------
                
var inter_zeit:Number setInterval(zeitanzeige100);
                var 
inter_text:Number setInterval(lauftext500);
                
            } else {
                
playertext.text "Buffering: "+numPercentLoaded+" %";
            }
        }

Das sollte jetzt eigentlich Funktionieren mit dem Löschen. Wenn du jetzt nur Bahnhof verstanden hast, dann schau dir nochmal die Lebensdauer und Gültigkeitbereich von Variablen innerhalb von Funktionen an (und alles was dazu gehört).
__________________
Gruß
Flo

---- blog.derhess.de ---- My Book Store ---- YouTube iNspIreNewMedia ----
Blog, Flash-Programmierung, Interaction Development und alles andere mit Medien
der_hess ist offline   Mit Zitat antworten
Alt 14-12-2006, 00:15   #4 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 36
Danke euch!
der_hess du hattest das inter_load zweimal definiert, aber das hab ich zum Glück selber rausgefunden.
Nachtritter 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 02:35 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele