Antworten auf deine Fragen:
Neues Thema erstellen

Bilder mit Link aus XML vorab laden

Kaycee

Noch nicht viel geschrieben

Guten Tag,

ich habe folgendes Problem. Ich habe das untenstehende Skript geschrieben. Dort werden Links aus ner XMl-Datei gezogen und mit einem MovieClip verbunden, sodass Bilder getweent werden können. Ist eine einfache Bildergalerie, die automatisch fortläuft. Also Bild wird eingeblendet - kurze Schleife - Bild wird wieder ausgeblendet. Dann wird das nächste Bild geladen... .

Nun habe ich aber ein Problem. Bei dem untenstehenden Code wird die ganze Zeit der Server belastet, da die Bilder immer wieder neu vom Server geladen werden. Wie kann ich das machen, dass die Bilder alle am Anfang einmal geladen werden?


Ich habe folgenden Code geschrieben:

Code:
import mx.transitions.*;

//leeren MC erstellen
this.createEmptyMovieClip("con",1);

//ein weitere MC wird eingebettet
var image_mc:MovieClip = con.createEmptyMovieClip("image_mc",1000);

//zuerst transparent setzen
this.con._alpha = 0;

//Zähler
var index:Number = 0;

//5Sek Pause = 5000 Millisekunden Pause zwischen den Bildern
var pause:Number = 5000;

var urls:Array = new Array();

//*****************************************************************************************//

//Rahmen MovieClip einfügen
this.createEmptyMovieClip("layer_mc", 998);
loadMovie("bilder/fotobackground.png", layer_mc);

this.createEmptyMovieClip("layer2_mc", 999);
loadMovie("bilder/klebestreifen.png", layer2_mc);
layer2_mc._alpha = 80;

//*****************************************************************************************//

var bilderXML:XML = new XML();    //neues XML Objekt anlegen
bilderXML.ignoreWhite = true;    //whitespace in XML ignorieren
bilderXML.onLoad = onload;        //onLoad-Handler zuweisen
bilderXML.load("bilderliste.xml");

function onload(erfolgreich) {
    if(erfolgreich) {
        
        var knotenliste:Array = new Array();
        knotenliste = this.firstChild.childNodes;    //der jeweilge erste Eintrag in den Knoten
        
        //Anzahl der Bilder ermitteln über die Länger der Knotenliste
        var len:Number = knotenliste.length;
        _root.len = len;
        
        //alle Einträge durchwandern und die Attribute in die Array setzen
        for(var i:Number = 0; i < _root.len; i++) {
            _root.urls[i] = knotenliste[i].attributes.url;
        }
        
        //jetzt werden erst die Bilder geladen
        _root.startLoader();
        
    }
    else{
        trace("Fehler beim Laden");
    }
}

//******************************************************************************************//

function startLoader() {
    
    //Lauscher und MovieClipLoader-Instanz erstellen
    _root.mclListener = new Object();
    _root.mcLoader = new MovieClipLoader();
    _root.mcLoader.addListener(_root.mclListener);
    
    //das erste Bild laden
    _root.mcLoader.loadClip("bilder/"+_root.urls[_root.index], _root.con.image_mc);
    
    //Bild ist geladen und MC wurde befüllt
    _root.mclListener.onLoadInit = function(mc:MovieClip) {
        
        //Bildgröße prüfen und skalieren
        if(_root.con.image_mc._width < _root.con.image_mc._height)
        {
            _root.con.image_mc._width = 244;
            _root.con.image_mc._yscale = _root.con.image_mc._xscale;
        }else if(root.con.image_mc._width > _root.con.image_mc._height)
        {
            _root.con.image_mc._height = 254;
            _root.con.image_mc._xscale = _root.con.image_mc._yscale;
        }else
        {
            _root.con.image_mc._height = 254;
            _root.con.image_mc._xscale = _root.con.image_mc._yscale;
        }
    
        //MC auf Bühnen platzieren
        _root.con._x = (45 + (244 / 2)) - (_root.con.image_mc._width / 2);
        _root.con._y = (105 +(254 / 2)) - (_root.con.image_mc._height / 2);
        
        trace("fertig,beladen wurde " +mc);
    }
    
    _root.fader(_root.con, true);
}

//******************************************************************************************//

function fader(mc,blende) {            //mc ist das ein bzw. auszublendende Objekt
                                    //blende ist true oder false, d.h. blendet aus oder ein
    if(blende) {
        //einblenden von alpha = 0 bis alpha = 100 in 0,6 Sekunden
        var tw1:Tween = new Tween(mc, "_alpha", mx.transitions.easing.None.easeNone, 0, 100, 0.6, true);
        tw1.onMotionFinished = function() {        //wenn einblenden beendet
            _root.meineID = setInterval(_root, "weiter", _root.pause);    //5sek Pause
        }
    }
    else {    //ausblenden
        var tw2:Tween = new Tween(mc, "_alpha", mx.transitions.easing.None.easeNone, 100, 0, 0.6, true);
        tw2.onMotionFinished = function() {
            _root.folgefilm();    //nächsten Film laden und einblenden
        }
    }
}

//******************************************************************************************//

//Intervall ist beendet
function weiter() {
    trace("Pause beendet");
    
    //Intervall wieder löschen
    clearInterval(_root.meineID);
    
    //aktuelles Bild ausblenden
    _root.fader(_root.con, false);
}

//*******************************************************************************************//

function folgefilm() {
    trace("folgefilm");
    _root.index++;
    trace(_root.index);
    
    //checken, ob das letzte Bild erreicht wurde
    if(_root.len == _root.index) {
        //letztes Bild wurde gezeigt, wieder mit dem ersten Bild starten = Loop
        _root.index = 0;
    }
    //nächstes Bild wird eingelesen und der Vorgang startet von neu
    _root.mcLoader.loadClip("bilder/"+_root.urls[_root.index], _root.con.image_mc);
    
    startLoader();
}

//*******************************************************************************************//

this.stop();
 

Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.620
Beiträge
1.538.373
Mitglieder
67.544
Neuestes Mitglied
janusbarman
Oben