• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-06-2009, 11:19   #1 (permalink)
asFlasher
 
Benutzerbild von ksw24
 
Registriert seit: Jul 2006
Beiträge: 1.136
xml lädt nicht nach preloaden

Halli-Hallo,

ich hab da (mal wieder) ein kleines Problem.

Ich habe eine Flashpage (AS3) und lade das Menü und weitere Page-Inhalte mit einer XML nach. Das ist alles soweit kein Problem, doch nun habe ich einen Preloader vorangestellt, und auf einmal möchte er die XML-Daten nicht mehr ausgeben. Konkret sieht es wie folgt aus:

index.swf => lädt per Loader() die page.swf
//-> page.swf sehe ich auch in der index datei...wird also geladen

page.swf => soll nun per URLLoader() die menu.xml laden
//-> wird aber nichts angezeigt / ausgegeben / geladen

Die Pfade stimmen eigentlich, habe testhalber sogar alles in ein und dem selben Verzeichnis angelegt. Wenn ich nur die page.swf starte wird auch das Menü ausgegeben / angezeigt. Nur eben nicht mit vorangestelltem Preloader.

Weiß hier jemand Rat dazu? Ich komm da einfach nicht drauf, was das Problem sein könnte.

Vielen Dank schon mal für eure Mühe

Gruß ksw24
ksw24 ist offline   Mit Zitat antworten
Alt 16-06-2009, 12:10   #2 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Ort: Dresden
Beiträge: 105
Eine offizieller Fehler ist mir zu diesem Thema nicht bekannt.

Also wirds an der Art und Weise liegen, wie dein Preloader mit
dem XML-URL-Loader verbunden ist.

Tipp: Bei der zu erwartenen Datenmenge des Menüs dürfte die
Latenzzeit zum Auffbau der HTTP-Verbindung um ein vielfaches
höher liegen als die Ladezeit. Daher kannst du eigentlich auf
einen Preloader verzichten.
kakenbok ist offline   Mit Zitat antworten
Alt 16-06-2009, 14:11   #3 (permalink)
asFlasher
 
Benutzerbild von ksw24
 
Registriert seit: Jul 2006
Beiträge: 1.136
Hallo,
ja, das ist ja eigentlich auch meine Meinung, gut dass du des auch so siehst...es ist halt so, dass der Kunde irgendwie eine langsame Leitung hat, ob nun Firewall oder Provider bedingt weiß ich nicht, jedenfalls braucht bei ihm wohl die Seite mit 200kb glatte 8sek. zum Laden. Daher die Überlegung eines Preloader...dass das nur wenig bis gar keinen Sinn hat habe ich mir auch schon gedacht.

Zitat:
Also wirds an der Art und Weise liegen, wie dein Preloader mit
dem XML-URL-Loader verbunden ist.
Eigentlich sind das zwei ganz normale unterschiedliche Objekte das im Preloader für die SWF ein Loader-Objekt, das für die XML dann ein URLLoader-Objekt. Beide unterschiedlich benannt...ich könnt höchstens mal versuchen das ganze in einen gesonderten Container zu platzieren.

Danke für deine Antwort

Gruß ksw24
ksw24 ist offline   Mit Zitat antworten
Alt 16-06-2009, 14:39   #4 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Ort: Dresden
Beiträge: 105
Vielleicht beschreibst du nochmal das Problem klarer.

Du möchtest, das für das Laden des XML ein Preloader angezeigt
wird. Und nun lädt alles zwar richtig, aber der Preloader für das XML
fehlt.

Das ist jedenfalls bei mir angekommen, und nun bin ich aber nicht
mehr sicher, ob das stimmt.
kakenbok ist offline   Mit Zitat antworten
Alt 16-06-2009, 14:43   #5 (permalink)
Odin zum Gruße!
 
Benutzerbild von Oxigan
 
Registriert seit: Nov 2006
Ort: Ösiland
Beiträge: 321
wie kommst du den an die xml? übergibst du die an das swf? oder schreibst du den pfad statisch rein? poste mal dein xml loader script - ohne den code zumindest stellenweiße zu sehen kann man dir sonst leider nicht wirklich helfen.

Greetz, Mike
Oxigan ist offline   Mit Zitat antworten
Alt 16-06-2009, 15:18   #6 (permalink)
asFlasher
 
Benutzerbild von ksw24
 
Registriert seit: Jul 2006
Beiträge: 1.136
Hallo,

also ich habe eine page.swf. Dort soll per:
ActionScript:
  1. var loader:URLLoader = new URLLoader();
  2. loader.load(new URLRequest("menu.xml"));
  3. loader.addEventListener(Event.COMPLETE, parseXML);
die XML eingelesen werden. Das klappt auch wunderbar, solange ich die page.swf aufrufe.

Doch wollte ich, dass eine index.swf erstmal die page.swf lädt. das dann per:
ActionScript:
  1. var preloader:Loader = new Loader();
  2. preloader.contentLoaderInfo.addEventListener(Event.COMPLETE, preloaded);
  3. preloader.load(new URLRequest("page.swf"));
  4.  
  5. function preloaded(e:Event):void{
  6.     addChild(e.target.content);
  7. }

Die page.swf wird zwar angezeigt, aber nicht mehr die XML-Daten.

Ich hoffe ihr wißt nun wie ich des meine.

Vielen Dank - ksw24
ksw24 ist offline   Mit Zitat antworten
Alt 16-06-2009, 15:23   #7 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Ort: Dresden
Beiträge: 105
Jetzt ist es klarer.

Wann lädt die page.swf ihr XML. Schonmal getestet, ob diese Stelle
überhaupt aufgerufen wird?

ActionScript:
  1. var loader:URLLoader = new URLLoader();
  2. loader.load(new URLRequest("menu.xml"));
  3. loader.addEventListener(Event.COMPLETE, parseXML);
  4. trace ("diese stelle hat das programm aufgerufen")

50% einer Lösung findet man immer auch mit Ausprobieren.
Was passiert, wenn du statt:

preloader.contentLoaderInfo.addEventListener(Event .COMPLETE, preloaded);

mal

preloader.contentLoaderInfo.addEventListener(Event .INIT, preloaded);

nimmst? INIT wird vor COMPLETE versendet.
kakenbok ist offline   Mit Zitat antworten
Alt 16-06-2009, 15:26   #8 (permalink)
Neuer User
 
Registriert seit: May 2009
Beiträge: 192
*kopfkratz* is wirklich komisch..

du addest den content direkt.. ich adde eigentlich immer den loader, vielleicht das mal probieren (wobei ich bezweifele das es das is), weil ansonsten siehts eigentlich ok aus

Code:
function preloaded(e:Event):void{
    addChild(preloader);
}
Plopsi ist offline   Mit Zitat antworten
Alt 16-06-2009, 15:37   #9 (permalink)
asFlasher
 
Benutzerbild von ksw24
 
Registriert seit: Jul 2006
Beiträge: 1.136
Hallo,

Zitat:
function preloaded(e:Event):void{
addChild(preloader);
}
Das habe ich auch schon versucht => leider kein Unterschied

Zitat:
INIT wird vor COMPLETE versendet.
Das hat leider auch keine Auswirkungen auf das Problem.

Ich erhalte folgende Fehlermeldung, wenn ich die index.swf aufrufe:
Code:
TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
	at page_fla::MainTimeline/page_fla::frame1()
Diese Meldung kommt aus der geladenen page.swf, warum ich diese Meldung nicht schon beim Aufruf der page.swf erhalte ist mir ein Rätsel, genauso um welches Objekt es sich da handeln soll.

Gruß ksw24

edit1: diese Meldung kommt schon vor dem Laden der XML...hat damit also doch nix zu tun.

edit2: kann es sein, dass ich in einer geladenen Datei nicht mehr einfach auf stage zugreifen kann?? Das ist das einzige Objekt, was mir auffällt...

Geändert von ksw24 (16-06-2009 um 15:45 Uhr)
ksw24 ist offline   Mit Zitat antworten
Alt 16-06-2009, 15:57   #10 (permalink)
asFlasher
 
Benutzerbild von ksw24
 
Registriert seit: Jul 2006
Beiträge: 1.136
Hallo,

also das ist echt komisch...es muss daran liegen, dass ich in der geladenen page.swf auf stage zugreifen möchte. Z.B. fürht die Zeile
ActionScript:
  1. trace("Stage: ",stage.stageWidth,"x",stage.stageHeight);
Zu den oben genannten Fehler. Wenn ich alle traces und Anweisung mit dem präfix stage weglasse, funktioniert alles wie es soll. Mehr oder weniger, denn ich möchte ja auf die stage zugreifen, was ich ja nun nicht kann...allerdings ist mir das unklar weshalb das so ist..!

Wie kann ich von einer geladenen swf auf stage zugreifen??

Gruß ksw24

P.S.: könnte schwören in einem anderen Projekt habe ich es genau so gemacht und dort hatte ich nicht die Probleme...konnte immer auf stage zugreifen !!
ksw24 ist offline   Mit Zitat antworten
Alt 16-06-2009, 16:49   #11 (permalink)
Neuer User
 
Registriert seit: May 2009
Beiträge: 192
führe deine stage sachen erst aus wenn die page.swf zur stage hinzugefügt wurde siehe Event.ADDED_TO_STAGE bzw Event.ADDED
Plopsi ist offline   Mit Zitat antworten
Alt 16-06-2009, 23:06   #12 (permalink)
asFlasher
 
Benutzerbild von ksw24
 
Registriert seit: Jul 2006
Beiträge: 1.136
Hallo,

super, also ich adde das Objekt "preloader" direkt nach der Initialisierung anstatt bei dem Complete Event. Das hats gebracht.

Danke für den Input

Gruß ksw24
ksw24 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
loader, preloader, urlloader, 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



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

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


Copyright ©1999 – 2012 Marc Thiele