Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-01-2006, 15:36   #1 (permalink)
ich lerne noch
 
Benutzerbild von Alpha.ONE
 
Registriert seit: Mar 2004
Ort: Konstanz
Beiträge: 267
Variable hat 2 Mal den gleichen Wert

Hallo,

es geht um folgendes Script:
PHP-Code:
stop();
XMLThumbnails = new XML();
XMLThumbnails.ignoreWhite true;
XMLThumbnails.load("thumbnails.xml");
XMLThumbnails.onLoad = function(erfolgreich) {
    if (
erfolgreich) {
        
anzahl XMLThumbnails.firstChild.childNodes.length;
        
ladeBild();
    }
};
function 
ladeBild() {
    
this.onEnterFrame = function() {
        
_global.0;
        if (
i<12) {
            
trace(i);
            var 
thumbmc "t"+(i+1);
            var 
balken "b"+(i+1);
            
this[thumbmc].loadMovie("bilder/thumbnails/"+XMLThumbnails.firstChild.childNodes[i].attributes.pfad);
            var 
geladen this[thumbmc].getBytesLoaded();
            var 
gesamt this[thumbmc].getBytesTotal();
            var 
prozent Math.round(geladen/gesamt+100);
            
this[balken]._yscale 100-prozent;
            if (
prozent == 100) {
                
this[balken]._visible false;
                
i++;
            }
        } else {
            
delete this.onEnterFrame;
        }
    };

Wenn ich den Film teste, und die Ausgabe checke, kommt immer folgendes:
Zitat:
0
0
1
1
2
2
3
3
4
4
4
5
5
6
6
7
7
8
8
9
9
10
10
10
11
11
Wieso hat i diese Werte und wie muss ich das Script verändern damit jede Zahl nur einmal vorkommt?

MfG Alpha
__________________
Auge um Auge - und die ganze Welt wird blind sein.
(Mahatma Gandhi)

Portfolio | deviantArt

Geändert von Alpha.ONE (12-01-2006 um 12:53 Uhr)
Alpha.ONE ist offline   Mit Zitat antworten
Alt 11-01-2006, 15:49   #2 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
wo setzt du denn das trace() ein, um diese ausgabe zu erhalten?

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 11-01-2006, 15:52   #3 (permalink)
ich lerne noch
 
Benutzerbild von Alpha.ONE
 
Registriert seit: Mar 2004
Ort: Konstanz
Beiträge: 267
Zeile 15

MfG Alpha
__________________
Auge um Auge - und die ganze Welt wird blind sein.
(Mahatma Gandhi)

Portfolio | deviantArt
Alpha.ONE ist offline   Mit Zitat antworten
Alt 11-01-2006, 16:19   #4 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Aachen
Beiträge: 1.081
vielleicht liegt es daran das 'i++' in der if Anweisung steht.
__________________
G.M. | working @ source lounge
georgexp ist offline   Mit Zitat antworten
Alt 11-01-2006, 16:20   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
PHP-Code:
Math.round(geladen/gesamt+100); 
+100???

Wie wäre es mit *100.

und:
PHP-Code:
if (prozent >= 100&&!isNaN(prozent)) { 
... 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 11-01-2006, 16:40   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
du kannst doch nicht deine loadMovie's in einem onEnterFrame-event ausführen. so versucht das script die 1000mal zu laden.
erhöhe mal die fps-einstellung und dein i wird bestimmt noch öfters gezählt.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 11-01-2006, 17:29   #7 (permalink)
ich lerne noch
 
Benutzerbild von Alpha.ONE
 
Registriert seit: Mar 2004
Ort: Konstanz
Beiträge: 267
Zitat:
PHP-Code:
Math.round(geladen/gesamt+100);

+100???

Wie wäre es mit *100.

und:
PHP-Code:
if (prozent >= 100&&!isNaN(prozent)) {
...
Ja das hat funktioniert.

Zitat:
du kannst doch nicht deine loadMovie's in einem onEnterFrame-event ausführen. so versucht das script die 1000mal zu laden.
erhöhe mal die fps-einstellung und dein i wird bestimmt noch öfters gezählt.
Ich hab versucht die loadMovies auserhalb des onEnterFrame zu schreiben aber dann lädt er nur noch das erste Thumbnail in den MC obwohl i die werte von 0 bis 11 hat.

MfG
__________________
Auge um Auge - und die ganze Welt wird blind sein.
(Mahatma Gandhi)

Portfolio | deviantArt
Alpha.ONE ist offline   Mit Zitat antworten
Alt 11-01-2006, 18:15   #8 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
empfehle dir, nicht 11 auf einmal laden zu wollen, sondern immer einen nach dem anderen. immer wenn ein swf fertig geladen ist, den zähler um eins runter und das nächsten swf laden.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 11-01-2006, 18:58   #9 (permalink)
ich lerne noch
 
Benutzerbild von Alpha.ONE
 
Registriert seit: Mar 2004
Ort: Konstanz
Beiträge: 267
Das ist doch genau das was das Script macht.
Wenn prozent == 100
i++

oder hab ich da was falsch gemacht bzw. verstanden?

MfG
__________________
Auge um Auge - und die ganze Welt wird blind sein.
(Mahatma Gandhi)

Portfolio | deviantArt
Alpha.ONE ist offline   Mit Zitat antworten
Alt 11-01-2006, 22:05   #10 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Aachen
Beiträge: 1.081
...solange allerdings 'prozent<100' wird die Schleife wieder (...und wieder) mit
dem gleichen Wert für i ausgeführt. Trace gibt nochmal das gleiche für i aus und
der MC wird nochmals geladen, wie hgseib schon sagte.

Die schnellste Lösung wäre wohl einen zusätzlichen Schalter einzubauen.

PHP-Code:
stop();
_global.schalter=false

XMLThumbnails 
= new XML();
XMLThumbnails.ignoreWhite true;
XMLThumbnails.load("thumbnails.xml");
XMLThumbnails.onLoad = function(erfolgreich) {
    if (
erfolgreich) {
        
anzahl XMLThumbnails.firstChild.childNodes.length;
        
ladeBild();
    }
};
function 
ladeBild() {
    
this.onEnterFrame = function() {
        
_global.0;
        if (
i<12) {

(!schalter) { 
schalter=true 

            trace
(i);
            var 
thumbmc "t"+(i+1);
            var 
balken "b"+(i+1);
            
this[thumbmc].loadMovie("bilder/thumbnails/"+XMLThumbnails.firstChild.childNodes[i].attributes.pfad);
            var 
geladen this[thumbmc].getBytesLoaded();
            var 
gesamt this[thumbmc].getBytesTotal();
            var 
prozent Math.round(geladen/gesamt+100);
            
this[balken]._yscale 100-prozent;
            if (
prozent == 100) {
                
this[balken]._visible false;

                
schalter=false

                i
++;
            }
        }
        } else {
            
delete this.onEnterFrame;
        }
    };

__________________
G.M. | working @ source lounge

Geändert von georgexp (11-01-2006 um 22:07 Uhr)
georgexp ist offline   Mit Zitat antworten
Alt 12-01-2006, 11:56   #11 (permalink)
ich lerne noch
 
Benutzerbild von Alpha.ONE
 
Registriert seit: Mar 2004
Ort: Konstanz
Beiträge: 267
Ok auch wenn ich gefahr laufe euch auf die nerven zu gehen, muss ich sagen das das ganze immer noch nicht funktioniert. Der Preloader ist sehr fehlerhaft.
Ihr könnt euch das ganze hier anschauen. Ihr seht das die Ladereihenfolge nicht stimmt. Ich hab die Variablen geladen und gesamt per trace() ausgeben lassen und Sie haben immer den Wert 12, obwohl die Thumbnails größer sind. Ich vermute das nur die Große der Movieclips in die die Bilder geladen werden ermittelt wird.

Ich hab jetzt die kompletten Dateien Hochgeladen (Flash 8)damit ihr euch einen Überblick verschaffen könnt.

MfG und vielen Dank
Angehängte Dateien
Dateityp: zip galerie.zip (16,9 KB, 2x aufgerufen)
__________________
Auge um Auge - und die ganze Welt wird blind sein.
(Mahatma Gandhi)

Portfolio | deviantArt

Geändert von Alpha.ONE (12-01-2006 um 16:03 Uhr)
Alpha.ONE ist offline   Mit Zitat antworten
Alt 12-01-2006, 19:39   #12 (permalink)
ich lerne noch
 
Benutzerbild von Alpha.ONE
 
Registriert seit: Mar 2004
Ort: Konstanz
Beiträge: 267
Ok ich hab jetzt die Preloaderfunktion als extra Funktion gemacht.

PHP-Code:
stop();
XMLThumbnails = new XML();
XMLThumbnails.ignoreWhite true;
XMLThumbnails.load("thumbnails.xml");
XMLThumbnails.onLoad = function(erfolgreich) {
    if (
erfolgreich) {
        
anzahl XMLThumbnails.firstChild.childNodes.length;
        
ladeBild();
    }
};
_global.0;
MovieClip.prototype.ladeBild = function() {
    if (
i<12) {
        
_global.thumbmc "t"+(i+1);
        
_global.balken "b"+(i+1);
        
this[thumbmc].loadMovie("galerie/thumbnails/"+XMLThumbnails.firstChild.childNodes[i].attributes.pfad);
        
preloader();
    }
};
MovieClip.prototype.preloader = function() {
    
this.onEnterFrame = function() {
        var 
geladen this[thumbmc].getBytesLoaded();
        var 
gesamt this[thumbmc].getBytesTotal();
        
trace (geladen)
        
trace(gesamt)
        var 
prozent Math.round(geladen/gesamt*100);
        
this[balken]._yscale 100-prozent;
        if (
prozent>=100 && !isNaN(prozent)) {
            
i++;
            
ladeBild();
            
this[balken]._visible false;
            if (
== 12) {
                
delete this.onEnterFrame;
            }
        }
    };
}; 
Trce ergibt folgende Werte:

PHP-Code:
12
12
37052
37052
0
-1
32488
32488
0
-1
38608
38608
0
-1
43864
43864
0
-1
35724
35724
0
-1
30824
30824
0
-1
35732
35732
0
-1
34412
34412
0
-1
34038
34038
36990
36990
0
-1
39477
39477 
Was zum Teufel ist falsch?
Ich komm nicht mehr weiter.

MfG
__________________
Auge um Auge - und die ganze Welt wird blind sein.
(Mahatma Gandhi)

Portfolio | deviantArt

Geändert von Alpha.ONE (12-01-2006 um 20:29 Uhr)
Alpha.ONE ist offline   Mit Zitat antworten
Alt 12-01-2006, 23:14   #13 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
anhang: flash8
Angehängte Dateien
Dateityp: zip bilder_laden.zip (9,6 KB, 2x aufgerufen)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (13-01-2006 um 00:38 Uhr)
hgseib 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 08:30 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele