Wie warte ich auf das Laden einer externen TXT-Datei in ActionScript 3? Wenn ich URLLoader verwende, kann ich nicht garantieren, dass die Datei geladen wurde, da sie ein Ereignis auslöst, wenn es abgeschlossen ist. Ich rufe die Loader-Funktion von einer anderen Klasse an, damit ich nicht einfach die nächsten Aktionen in den Event-Listener stecken kann.Wie warte ich auf das Laden einer externen TXT-Datei in ActionScript 3?
Antwort
Um eine Textdatei (oder eine XML-Datei) laden Sie URLLoader verwenden können. Heres ein Beispiel für XML (so ziemlich das gleiche) von kirupa
var loader:URLLoader;
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, xmlLoaded);
var request:URLRequest = new URLRequest("file.xml");
loader.load(request);
function xmlLoaded(event:Event):void {
var myXML:XML = new XML(loader.data);
}
Wenn Sie es von einer anderen Klasse aufrufen können Sie den Anrufer als Verweis auf die Eventlistener passieren und die Event.COMPLETE vom gerufenen Griff Klasse:
loader.addEventListener(Event.COMPLETE, caller_class.xmlLoaded);
Idealerweise konnten Sie Ihre loader-Klasse wiederverwendbar machen und sie machen Eventdispatcher verlängern so statt der URLLoader hören Sie Ihre eigene Klasse zu hören. Ich poste keinen Code für das die Antwort einfach zu halten, aber here'sa paar Links, wenn Sie Interesse: An example for XML loader und Another example for a more complex image loader (to avoid confussions don´t read it unless you already understand the text/XML one)
Ich hoffe, es hilft :)
EDITED: Wie offenbar für die dispatch sind Sie auf der Suche Weg here'sa paar Tipps:
1) erweitern Klasse Eventdispatcher
public class YourClass extends EventDispatcher{
2) verwenden dispatchEvent(new Event("event_name"));
das Ereignis aus einer anderen Klasse
3) Hören Sie sich diese Veranstaltung zu versenden. ZB: loader_class.addEventListener("event_name", callback);
* 4) Optional können Sie die Zeichenfolge ändern („event_name“) durch eine Konstante wie DispatcherClass.EVENT_NAME
durch die Konstante in der Dispatcher-Klasse definiert public const EVENT_NAME:String = "event_name",
und es von der anderen Klasse wie folgt nennen: loader_class.addEventListener(DispatcherClass.EVENT_NAME, callback);
Ich hoffe, jetzt ist alles klarer.
- 1. FLV in Actionscript 3 vorab laden?
- 2. Laden von XML in Actionscript 3
- 3. NSXMLParser: Wie warte ich, bis das Laden beendet ist?
- 4. Laden Profilbild von Facebook mit Actionscript 3
- 5. Actionscript 3: Laden Ai-Dateien dynamisch?
- 6. Laden von geladenem Bild ziehbaren Actionscript 3
- 7. Warte auf das Laden von Bildern mit JQuery
- 8. Infinity in ActionScript 3
- 9. Flash, ActionScript: Laden von Assets von externen SWF
- 10. Wie lösche ich/gc ein Objekt in Actionscript 3?
- 11. watir-webdriver warte auf das Laden der Seite
- 12. Entsprechung in ActionScript 3
- 13. classID/UUID einer Kamera in Actionscript 3
- 14. wie URL unsichtbar in Actionscript GET/laden?
- 15. Wie kann ich SWFLoader rein aus Actionscript in Flex 3 verwenden und Inhalte dynamisch laden?
- 16. Rendering in ActionScript 3 optimieren
- 17. So beheben Sie das Schließen-Problem in ActionScript 3 (AS3)
- 18. ActionScript 3 dynamisch Ruftasten
- 19. Flash Whiteboard: Actionscript 3
- 20. ActionScript 3 - gotoAndStop in movieclip
- 21. Warte auf das Bildschirmfenster zu beenden
- 22. Actionscript 3 einfaches Bild Schieberegler
- 23. Actionscript 3 Aufruf einer JavaScript-Funktion
- 24. Tastatureingabe mit ActionScript 3
- 25. arsort mit Actionscript 3
- 26. Wie man Klangverzerrung in ActionScript-3 anwenden?
- 27. ActionScript 3 MovieClip-Klassenverknüpfung
- 28. ActionScript 3 Etiketten Fett
- 29. ActionScript 3 Zeilenumbrüche in Anführungszeichen
- 30. Einen Pfad in Actionscript 3 analysieren?
Vielen Dank! Ich denke, es gibt keine Möglichkeit, dieses Problem funktionell zu lösen. Wenn ich "loader.addEventListener (Event.COMPLETE, caller_class.xmlLoaded);" mache, kann ich die 2 Klassen nicht getrennt halten, da caller_class in der Loader-Klasse codiert ist. Im Idealfall möchte ich die loading-Funktion von caller_class aufrufen, warten, bis sie beendet ist, und weiter Sachen in caller_class erledigen. – Archagon
Sie müssen nicht unbedingt auf den aufrufenden Abschnitt verweisen, da Sie den Aufrufer als nicht typisierten Parameter erhalten könnten, aber ich denke, was Sie suchen, ist die andere Lösung, die ich erwähnt habe. Ich werde meinen Beitrag bearbeiten, um das zu erklären. – ozke