Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-11-2011, 21:41   #1 (permalink)
Flash-Bierer
 
Registriert seit: Aug 2007
Beiträge: 67
Merkwürdiges Problem mit der Bildreihenfolge beim laden aus XML

Moin,

so sieht die XML-Datei aus :

PHP-Code:
<?xml version="1.0" encoding="utf-8"?>
<slider>
    <IMAGE FULL="./cmsImages/b 01.jpg" THUMB="./cmsImages/01.jpg"/>
    <IMAGE FULL="./cmsImages/b 02.jpg" THUMB="./cmsImages/02.jpg"/>
    <IMAGE FULL="./cmsImages/b 03.jpg" THUMB="./cmsImages/03.jpg"/>
    <IMAGE FULL="./cmsImages/b 04.jpg" THUMB="./cmsImages/04.jpg"/>    
</slider>
und so mein actionscript:

PHP-Code:
import flash.net.URLLoader;
import flash.events.Event;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.display.MovieClip;

//VARIABLEN
var loader:URLLoader = new URLLoader();
var 
my_images:XMLList;
var 
my_total:Number;
var 
image_array:Array = new Array();
var 
image_url:String;
var 
image_loader:Loader;
var 
thumb_loader:Loader;
var 
my_image:Loader;
var 
thumb_con:MovieClip;
var 
full_con:MovieClip;
var 
counter:uint 0;

//XML LADEN
loader.addEventListener(Event.COMPLETEloadXML);
loader.load(new URLRequest("slider.xml"));


//------------------------------//
//----------Funktionen----------//
//------------------------------//

function loadXML(e:Event):void
{
    var 
my_xml:XML = new XML(e.target.data);
        
    
my_images my_xml.IMAGE;    
    
my_total my_xml.IMAGE.length();
    
    
createContainer();
    
callImages();
}

function 
createContainer():void
{
    
thumb_con = new MovieClip();
    
thumb_con.stage.stageWidth 44;
    
thumb_con.0;
    
    
full_con = new MovieClip();
    
full_con.0;
    
full_con.0;
    
    
addChild(thumb_con);
    
addChild(full_con);
}

function 
callImages():void 
{
    for(var 
i:uint 0i<my_totali++)
    {
        
thumb_loader = new Loader();
        
thumb_loader.load(new URLRequest(my_images[i].@THUMB));
        
thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,imageLoaded);                          
    }
}

function 
imageLoaded(e:Event):void
{
    
my_image Loader(e.target.loader);
    
    
addImage();    
    
counter++;
}

function 
addImage():void
{    
    
my_image.0;
    
my_image.counter * (my_image.height 1);
    
my_image.alpha .7;
    
thumb_con.addChild(my_image);

Also es werden ganz einfach Bilder geladen, dessen Pfade aus einer XML-Datei kommen. Funktioniert soweit auch ganz gut, also XML wird geladen, die Pfade werden richtig ausgelesen und die Bilder werden anständig auf die Bühne geladen. ABER in falscher Reihenfolge und ich versteh absolut nicht woran das liegt. Kann mir da einer helfen?
Angehängte Dateien
Dateityp: zip Collection-Slider.zip (84,0 KB, 0x aufgerufen)
method360 ist offline   Mit Zitat antworten
Alt 10-11-2011, 04:45   #2 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 3.495
Weil du alle Bilder gleichzeitig lädst und sie unterschiedlich schnell fertig werden. Wenn du die richtige Reihenfolge möchtest, dann musst du entweder nacheinander laden, oder dir aber zumindest irgendwie im code merken, welcher Loader welchen idx haben soll, um sie anschließend zu sortieren. (bspw. einfach in einem Array behalten)

mfg

sx
__________________

flintfabrik.de
shin10 ist gerade online   Mit Zitat antworten
Alt 10-11-2011, 13:37   #3 (permalink)
Flash-Bierer
 
Registriert seit: Aug 2007
Beiträge: 67
Habs geändert, da man einem Loader keine direkte ID vergeben kann, wie das bei anderen Objekten der Fall ist. Hab ich die callImages()-Funktion ein bisschen abgeändert und die for-schleife rausgeschmissen.

PHP-Code:
function callImages():void 
{
    var 
image_loader:Loader = new Loader();
    
image_loader.load(new URLRequest(my_images[image_counter].@FULL));
    
image_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,imageLoaded);
}

function 
imageLoaded(e:Event):void
{
    var 
my_image:Loader;

    
my_image Loader(e.target.loader);    
    
addImage(my_image);        
    
    
image_counter++;
    
callImages();

Jetzt funktioniert es einwandfrei. Danke für den Tipp.
method360 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
displaylist, reihenfolge, xml

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Merkwürdiges Security-Verhalten beim Scrollen WintrowBN Adobe AIR 3 16-02-2009 11:23
Merkwürdiges Problem lucy186 ActionScript 2 7 13-10-2008 15:20
Merkwürdiges Problem beim Überblenden von Grafiken radauzen Flash 8 1 15-10-2007 11:56
merkwürdiges Problem beim Aufruf bestimmter URLs webxvideo Server-Seite allgemein 3 27-10-2006 11:05
Merkwürdiges AVI Problem labrar Flash MX 2004 0 07-10-2005 17:10


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:59 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele