PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
Webdesign: HTML/CSS, Responsive Design, Sass...
Bilder mit Link aus XML vorab laden
Beitrag
<blockquote data-quote="Kaycee" data-source="post: 801745" data-attributes="member: 188395"><p>Guten Tag,</p><p></p><p>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... . </p><p></p><p>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?</p><p></p><p></p><p>Ich habe folgenden Code geschrieben:</p><p></p><p>[code]import mx.transitions.*;</p><p></p><p>//leeren MC erstellen</p><p>this.createEmptyMovieClip("con",1);</p><p></p><p>//ein weitere MC wird eingebettet</p><p>var image_mc:MovieClip = con.createEmptyMovieClip("image_mc",1000);</p><p></p><p>//zuerst transparent setzen</p><p>this.con._alpha = 0;</p><p></p><p>//Zähler</p><p>var index:Number = 0;</p><p></p><p>//5Sek Pause = 5000 Millisekunden Pause zwischen den Bildern</p><p>var pause:Number = 5000;</p><p></p><p>var urls:Array = new Array();</p><p></p><p>//*****************************************************************************************//</p><p></p><p>//Rahmen MovieClip einfügen</p><p>this.createEmptyMovieClip("layer_mc", 998);</p><p>loadMovie("bilder/fotobackground.png", layer_mc);</p><p></p><p>this.createEmptyMovieClip("layer2_mc", 999);</p><p>loadMovie("bilder/klebestreifen.png", layer2_mc);</p><p>layer2_mc._alpha = 80;</p><p></p><p>//*****************************************************************************************//</p><p></p><p>var bilderXML:XML = new XML(); //neues XML Objekt anlegen</p><p>bilderXML.ignoreWhite = true; //whitespace in XML ignorieren</p><p>bilderXML.onLoad = onload; //onLoad-Handler zuweisen</p><p>bilderXML.load("bilderliste.xml");</p><p></p><p>function onload(erfolgreich) {</p><p> if(erfolgreich) {</p><p> </p><p> var knotenliste:Array = new Array();</p><p> knotenliste = this.firstChild.childNodes; //der jeweilge erste Eintrag in den Knoten</p><p> </p><p> //Anzahl der Bilder ermitteln über die Länger der Knotenliste</p><p> var len:Number = knotenliste.length;</p><p> _root.len = len;</p><p> </p><p> //alle Einträge durchwandern und die Attribute in die Array setzen</p><p> for(var i:Number = 0; i < _root.len; i++) {</p><p> _root.urls[i] = knotenliste[i].attributes.url;</p><p> }</p><p> </p><p> //jetzt werden erst die Bilder geladen</p><p> _root.startLoader();</p><p> </p><p> }</p><p> else{</p><p> trace("Fehler beim Laden");</p><p> }</p><p>}</p><p></p><p>//******************************************************************************************//</p><p></p><p>function startLoader() {</p><p> </p><p> //Lauscher und MovieClipLoader-Instanz erstellen</p><p> _root.mclListener = new Object();</p><p> _root.mcLoader = new MovieClipLoader();</p><p> _root.mcLoader.addListener(_root.mclListener);</p><p> </p><p> //das erste Bild laden</p><p> _root.mcLoader.loadClip("bilder/"+_root.urls[_root.index], _root.con.image_mc);</p><p> </p><p> //Bild ist geladen und MC wurde befüllt</p><p> _root.mclListener.onLoadInit = function(mc:MovieClip) {</p><p> </p><p> //Bildgröße prüfen und skalieren</p><p> if(_root.con.image_mc._width < _root.con.image_mc._height)</p><p> {</p><p> _root.con.image_mc._width = 244;</p><p> _root.con.image_mc._yscale = _root.con.image_mc._xscale;</p><p> }else if(root.con.image_mc._width > _root.con.image_mc._height)</p><p> {</p><p> _root.con.image_mc._height = 254;</p><p> _root.con.image_mc._xscale = _root.con.image_mc._yscale;</p><p> }else</p><p> {</p><p> _root.con.image_mc._height = 254;</p><p> _root.con.image_mc._xscale = _root.con.image_mc._yscale;</p><p> }</p><p> </p><p> //MC auf Bühnen platzieren</p><p> _root.con._x = (45 + (244 / 2)) - (_root.con.image_mc._width / 2);</p><p> _root.con._y = (105 +(254 / 2)) - (_root.con.image_mc._height / 2);</p><p> </p><p> trace("fertig,beladen wurde " +mc);</p><p> }</p><p> </p><p> _root.fader(_root.con, true);</p><p>}</p><p></p><p>//******************************************************************************************//</p><p></p><p>function fader(mc,blende) { //mc ist das ein bzw. auszublendende Objekt</p><p> //blende ist true oder false, d.h. blendet aus oder ein</p><p> if(blende) {</p><p> //einblenden von alpha = 0 bis alpha = 100 in 0,6 Sekunden</p><p> var tw1:Tween = new Tween(mc, "_alpha", mx.transitions.easing.None.easeNone, 0, 100, 0.6, true);</p><p> tw1.onMotionFinished = function() { //wenn einblenden beendet</p><p> _root.meineID = setInterval(_root, "weiter", _root.pause); //5sek Pause</p><p> }</p><p> }</p><p> else { //ausblenden</p><p> var tw2:Tween = new Tween(mc, "_alpha", mx.transitions.easing.None.easeNone, 100, 0, 0.6, true);</p><p> tw2.onMotionFinished = function() {</p><p> _root.folgefilm(); //nächsten Film laden und einblenden</p><p> }</p><p> }</p><p>}</p><p></p><p>//******************************************************************************************//</p><p></p><p>//Intervall ist beendet</p><p>function weiter() {</p><p> trace("Pause beendet");</p><p> </p><p> //Intervall wieder löschen</p><p> clearInterval(_root.meineID);</p><p> </p><p> //aktuelles Bild ausblenden</p><p> _root.fader(_root.con, false);</p><p>}</p><p></p><p>//*******************************************************************************************//</p><p></p><p>function folgefilm() {</p><p> trace("folgefilm");</p><p> _root.index++;</p><p> trace(_root.index);</p><p> </p><p> //checken, ob das letzte Bild erreicht wurde</p><p> if(_root.len == _root.index) {</p><p> //letztes Bild wurde gezeigt, wieder mit dem ersten Bild starten = Loop</p><p> _root.index = 0;</p><p> }</p><p> //nächstes Bild wird eingelesen und der Vorgang startet von neu</p><p> _root.mcLoader.loadClip("bilder/"+_root.urls[_root.index], _root.con.image_mc);</p><p> </p><p> startLoader();</p><p>}</p><p></p><p>//*******************************************************************************************//</p><p></p><p>this.stop();</p><p> [/code]</p></blockquote><p></p>
[QUOTE="Kaycee, post: 801745, member: 188395"] 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(); [/code] [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ▲ = 5, ▼ = 2 und ■ = 7, was ist ▲ × ▼ + ■?
Antworten
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
Webdesign: HTML/CSS, Responsive Design, Sass...
Bilder mit Link aus XML vorab laden
Oben