Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-08-2011, 10:54   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2011
Beiträge: 3
mit xml bilder auf die Bühne laden

Hi, ich bin am verzweifeln!

Ich versuche mit xml Bilder in mein AS3 Script zu laden dies Funktioniert auch nur die Ausgabe will nicht so ganz.

Wäre cool wenn mir jemand helfen könnte!

Ich bekomme immer diese Fehlermeldung:
Error #2044: IOErrorEvent unverarbeitet. text=Error #2035: Die URL wurde nicht gefunden.

Code:
<bilder>
    <bild>\bilder\bild1.jpg</bild>
    <bild>\bilder\bild2.jpg</bild>
</bilder>

Code:
var bilder_xml:XML;
var bilder_load:URLLoader = new URLLoader();
bilder_load.load(new URLRequest("bilder/bilder.xml"));
bilder_load.addEventListener(Event.COMPLETE, loadComplete);

function loadComplete(e:Event):void{
	
	bilder_xml = new XML(e.target.data);
	var posX:int = 10;
	var container:Sprite 
	
	for (var i:int = 0; i<bilder_xml.*.length(); i++){
		
		container = new Sprite;
		addChild(container);
		var bilder_ldr:Loader = new Loader();
		var bilder:URLRequest = new URLRequest("/bilder/" + bilder_xml[i]);
		bilder_ldr.load(bilder);
		bilder_ldr.x = posX + i * 10;
	}
}
_-danie-_ ist offline   Mit Zitat antworten
Alt 16-08-2011, 11:20   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Willkommen im FlashForum!

Zum Einen dürften bei Dir ziemlich seltsame Pfade rauskommen, wenn Du die URL so zusammensetzt:
Zitat:
"/bilder/\bilder\bild2.jpg"
Im Web sollte man immer "/" verwenden und keine "\".
Da die Pfade dann absolut sind und mit einen "/" beginnen, werden sie nur auf einem Webserver funktionieren und nicht lokal.

Zum anderen ist bilder_xml ein XML-Objekt und kein Array. Du kannst Deshalb auf die UnterElemente nicht einfach über einen numerischen Index zugreifen.

Versuch's mal so:
PHP-Code:
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;

var 
bilderXml:XML;
var 
bilderLoader:Array;
var 
bilderXmlLoader:URLLoader = new URLLoader();

bilderXmlLoader.addEventListener(Event.COMPLETEloadComplete);
bilderXmlLoader.load(new URLRequest("bilder/bilder.xml"));

function 
loadComplete(e:Event):void{    
    
bilderXml = new XML(e.target.data);
    
bilderLoader = [];
    
    var 
posX:int 10;
    var 
container:Sprite = new Sprite();
    var 
bildLoader:Loader;

    for 
each (var bildXml in bilderXml.bild) {        
        
bildLoader = new Loader();
        
bildLoader.load( new URLRequestbildXml.toString() ) );
        
        
container.addChild(bildLoader);
        
bilderLoader.push(bildLoader);
        
        
bildLoader.posX;
        
posX += 10
    
}
    
    
addChild(container);

__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (16-08-2011 um 12:00 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 16-08-2011, 11:36   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Ort: Berlin
Beiträge: 478
Da sind verschiedene Dinge nicht optimal. Hab mal eine Lösung gemacht.

XML:
Code:
<?xml version="1.0" encoding="utf-8" ?>
<bilder>
    <bild>bild1.jpg</bild>
    <bild>bild2.jpg</bild>
</bilder>
Code:
import flash.events.Event;

var bilder_xml:XML;
var bilder_load:URLLoader = new URLLoader();
var bildArray:Array = new Array();
var aktLoadIndex:uint = 0;
var bilder_ldr:Loader = new Loader();
bilder_ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,imageLoaded);
bilder_load.load(new URLRequest("bilder/bilder.xml"));
bilder_load.addEventListener(Event.COMPLETE, loadComplete);

function loadComplete(e:Event):void{
	bilder_xml = new XML(e.currentTarget.data);
	loadImage(aktLoadIndex);
}
function loadImage(index:uint):void {
	var bild:URLRequest = new URLRequest("bilder/" + bilder_xml.bild[index]);
	trace(bild.url);
	bilder_ldr.load(bild);
	
}
function imageLoaded(e:Event):void {
	bildArray.push(e.currentTarget.content);
	if(aktLoadIndex+1 <bilder_xml.bild.length()) {
		aktLoadIndex++;
		loadImage(aktLoadIndex);
	} else {
		trace("done");
	}
}

1. Bildpfade nicht in die XML aufnehmen, wenn der Pfad immer der gleiche ist. Redundanz .

2. Alles, was nicht mehrfach initialisiert werden muss, nicht in die for-Schleife, sondern außerhalb definieren.

... war wieder jemand schneller ... dann spare ich mir weitere Erläuterungen.
__________________
Adobe Flash CS5: Das Handbuch
Webdesign und Webentwicklung: medianetic

Gesendet von meinem Windows-PC.
Blog-relaunch: http://www.blog.medianetic.de

Geändert von medianetic (16-08-2011 um 11:44 Uhr)
medianetic ist offline   Mit Zitat antworten
Alt 16-08-2011, 12:08   #4 (permalink)
Neuer User
 
Registriert seit: Aug 2011
Beiträge: 3
Vielen Dank!

jetzt funktioniert es
_-danie-_ ist offline   Mit Zitat antworten
Alt 16-08-2011, 12:25   #5 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Zitat:
Zitat von medianetic Beitrag anzeigen
1. Bildpfade nicht in die XML aufnehmen, wenn der Pfad immer der gleiche ist. Redundanz.
Das ist eine URI, die sollte schon eindeutig sein, da man sonst de Client neu kompilieren darf, wenn sich die Bildpfade ändern.
Omega Psi ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
as3, bilder laden, 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
per XML geladene Bilder auf der Bühne bewegen amexdesign Flash 8 0 04-12-2007 18:23
Bilder per Button auf Bühne TommySuave Flash 8 2 10-01-2007 12:35
Bilder aus Bibliothek dynamisch auf die Bühne laden... fanyProductions ActionScript 1 2 19-04-2005 18:33
Bilder nacheinander laden und übereinander(!) auf Bühne platzieren dizzlwizzl Flash MX 1 01-02-2005 01:58
bilder per zufallsgenerator aus ordner auf bühne laden bensoni Flash 4 und Flash 5 12 20-08-2003 11:22


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:00 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele