Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-02-2009, 15:29   #1 (permalink)
Neuer User
 
Benutzerbild von -==AIRWOLF==-
 
Registriert seit: May 2004
Beiträge: 97
Dateien aus XML speichern

Hallo,

ich lade über eine XML-Datei mehrere Bilder in eine Art Gallerie. Die einzelnen Bilder können dan über eine "Vor-" und "Zurück-" - Schaltfläche angesehen werden. Mein Problem besteht darin, dass die Bilder jedesmal neu geladen werden, auch wenn das Bild schonmal angezegt wurde.

PHP-Code:
var loader:URLLoader = new URLLoader();
    
loader.load(new URLRequest("bilder.xml"));
    
loader.addEventListener(Event.COMPLETEparseXML);

function 
parseXML(ev) {
        var 
xml_dokument:XML = new XML(ev.target.data);
            
        for (var 
i:int 0xml_dokument.bild.length(); i++) {
            var 
bild = new Object();
              
bild.dateiname xml_dokument.bild[i].dateiname.text();
            
bilder[bilder.length] = bild;
        }        
        
Bild_anzeigen(1);
    }

function 
Bild_anzeigen(nr:int) {
           if (
nr && nr <= bilder.length) {
              var 
loader:Loader = new Loader();
              
loader.load(new URLRequest(bilder[nr 1].dateiname));
        while (
bildanzeige.numChildren 0) {
               
bildanzeige.removeChildAt(0);
          }
          
bildanzeige.addChild(loader);
          
aktuelle_nummer nr;
        }
    } 
Wie kann ich die einmal geladenen bzw. angezeigten Bilder speichern, damit nicht jedesmal ein Ladevorgang ausgeführt werden muss?
__________________
Gruß -==AIRWOLF==-
-==AIRWOLF==- ist offline   Mit Zitat antworten
Alt 19-02-2009, 15:37   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
dafür ist eigentlich der browser selbst zuständig. einmal geladene daten werden im cache gespeichert und beim wiederholten aufrufen, so sie noch im cache sind, von dort geholt.

oft geht es eher darum, den cache zu überlisten um aktuelle daten zu erhalten.

wie sieht denn der befehl aus, mit welchem url lädst du die bilder? (was steht in bilder[nr - 1].dateiname)

gibt es eine browser einstellung (wie z.b. privat surfen) die das cachen unterbindet?
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (19-02-2009 um 15:39 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 19-02-2009, 23:41   #3 (permalink)
Neuer User
 
Benutzerbild von -==AIRWOLF==-
 
Registriert seit: May 2004
Beiträge: 97
Danke für deine Antwort.

Da ich nicht vor meinem "Standard" -Browser gesessen habe, hatte ich nicht bedacht das evtl. der Cache zu schmal eingestellt war. Hatte hier zu Testzwecken ein mehrere MB großes Bild geladen.

Zu meinem Code ist mir dennoch eine Unklarheit aufgetaucht:

Ich füge per
PHP-Code:
bildanzeige.addChild(loader); 
ein neues Objekt ein.
Unter welchem Namen kann ich dieses Object ansprechen um z.B. den alpha-Wert zu verändern?
__________________
Gruß -==AIRWOLF==-
-==AIRWOLF==- ist offline   Mit Zitat antworten
Alt 20-02-2009, 00:42   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
loader

aber vorsicht! es gibt ein globales loader und ein locales loader
unterschiedlichen typ's - da würde ich mehr sorgfalt in der namenswahl empfehlen.

wenn du später das loader ansprechen willst, das du auf die bühne add'ierst - dann sollte dieses loader eine globale variable und nicht nur innerhalb der funktion bekannt sein.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (20-02-2009 um 00:48 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 20-02-2009, 13:02   #5 (permalink)
Neuer User
 
Benutzerbild von -==AIRWOLF==-
 
Registriert seit: May 2004
Beiträge: 97
In Bezug auf die Vergabe der Namen hast du recht. Das bringt unnötig Schwierigkeiten.

Leider weiß ich nicht, wie ich die Varibale für den Loader Global vergeben soll. Könntest du mir bitte dazu noch einen Hinweis geben?

Danke dir.
__________________
Gruß -==AIRWOLF==-
-==AIRWOLF==- ist offline   Mit Zitat antworten
Alt 20-02-2009, 13:50   #6 (permalink)
as3 addict
 
Benutzerbild von Marcy_LH
 
Registriert seit: Jun 2002
Ort: Leipzig
Beiträge: 351
globale Variablen beginne ich immer mit nem Unterstrich:

var _loader : Loader = new Loader();

function loaded(event : Event) : void {
var loader : Loader = event.target as Loader;
}

Somit weiß ich, was lokal und was global definiert ist.
Außerdem kann man dann getter und setter ohne
Unterstrich verwenden:

public function get loader() : Loader {
return _loader;
}

Gruß

Marcy
Marcy_LH ist offline   Mit Zitat antworten
Alt 20-02-2009, 14:13   #7 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Zitat:
Zitat von -==AIRWOLF==- Beitrag anzeigen
Leider weiß ich nicht, wie ich die Varibale für den Loader Global vergeben soll. Könntest du mir bitte dazu noch einen Hinweis geben?
z.b.
lege ein array an, da kannst du alle referenzen drin sammeln
und lass deine funktion die referenz zurück geben.

var bild:Loader = Bild_anzeigen(nr:int):Loader;
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
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 16:23 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele