Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-11-2005, 13:16   #1 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Problem bei Aufruf einer Funktion

Ich lade über ein Menü ein SWF in einen MC.
Seitdem ich die loadMe-Funktion wie folgt abgeändert habe, springt er nicht mehr zum entsprechen Label,
das an die Funktion übergeben wird, sondern immer zum ersten Frame des geladenen MCs.
Wo habe ich den Denkfehler?

Code:
function loadMe(toLabel) {
    this.onEnterFrame = function() {
        if(_root.mcMain.getBytesLoaded() >= _root.mcMain.getBytesTotal()) {	
            delete this.onEnterFrame;
			_level0.mcMain._visible = true;
    		_level0.mcBackground._visible = true;
			_level0.mcFooter._visible = true;
			_level0.mcMain.gotoAndStop(toLabel);
        }
    };
}
Die Funktion wird so aufgerufen:

Code:
// etc
case menu.history :
      loadMovie("de/unternehmen/company.swf", _root.mcMain);
      loadMe("history");
       break;
// etc

Geändert von compuboy1010 (07-11-2005 um 14:18 Uhr)
compuboy1010 ist offline   Mit Zitat antworten
Alt 07-11-2005, 14:17   #2 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Das Problem ist, dass es so wie unten manchmal funzt. Aber total willkürlich. In ca. 10% der Aufrufe. Absolut merkwürdig.

Code:
function loadMe(toLabel) {
    this.onEnterFrame = function() {
       if(_root.mcMain.getBytesLoaded() < _root.mcMain.getBytesTotal()) {	
	   //nothing
    	} else {
             delete this.onEnterFrame;
     		_level0.mcMain.gotoAndStop(toLabel);
			_level0.mcMain._visible = true;
    		_level0.mcBackground._visible = true;
			_level0.mcFooter._visible = true;
			updateAfterEvent();
	    }
    };
}
compuboy1010 ist offline   Mit Zitat antworten
Alt 07-11-2005, 14:24   #3 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
...dann liegt's wohl am Preloader (denke ich mal):
PHP-Code:
function loadMe(toLabel) {
    
this.onEnterFrame = function() {
        if (
_root.mcMain.getBytesLoaded()>=_root.mcMain.getBytesTotal() && _root.mcMain.getBytesLoaded()>10) {
            
delete this.onEnterFrame;
            
_level0.mcMain.gotoAndStop(toLabel);
            
_level0.mcMain._visible true;
            
_level0.mcBackground._visible true;
            
_level0.mcFooter._visible true;
            
//updateAfterEvent();
        
}
    };

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 07-11-2005, 14:30   #4 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Wat? Wer?

Wieso "> 10" ?
Muss man das verstehen?

Geändert von compuboy1010 (07-11-2005 um 14:40 Uhr)
compuboy1010 ist offline   Mit Zitat antworten
Alt 07-11-2005, 14:37   #5 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Es funzt tatsächlich.

Ich raste hier gleich komplett aus. Da sitze ich hier seit heute morgen und habe die Funktion 762 mal
umgeschrieben und nichts hat funktioniert. Da poste ich ein paar Zeilen und schon kommt der
Frager und gibt mir innerhalb von ein paar Minuten die Lösung, obwohl er den ganzen Code noch nichtmals
kennt. Weißt du eigentlich, dass du mir mein Selbstbewusstsein kaputt machst ?

Ist derFrager eigentlich eine einzige Person oder mehrere? Mal im ernst!
Sagst du mir warum das klappt?

Geändert von compuboy1010 (07-11-2005 um 14:38 Uhr)
compuboy1010 ist offline   Mit Zitat antworten
Alt 07-11-2005, 15:15   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Also:
Bei deiner Abfrage kann am Anfang schnell 2 x "NaN" rauskommen:
PHP-Code:
var "NaN";
var 
"NaN";
if (
x<y) {
    
trace("nö");
} else {
    
trace("aha");

Damit ist klar, warum das nicht ging. Genauso kann's halt sein (oder ist es so), dass Flash eben nicht sofort die geladenen Bytes und die zuladenen Bytes kennt. Durch die Abfrage, ob schon 10 Byte geladen wurden, gibst du Flash genug Zeit, sich da schlau zu machen. Ein leere MC hatte früher übrigens auch 4 Byte - ob's immernoch so ist - keine Ahnung.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 08-11-2005, 13:26   #7 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Aja, Danke. Super.
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 04:49 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele