Vor kurzem benötigte ich für ein Projekt eine Klasse die Daten aus einer Textdatei liest. Adobe bietet ja eine umfangreiche Bibliothek an was Klassen und deren Funktionen betrifft. Aber als die load-Funktion des URLLoaders immer wieder einen Error wurf und ich diese nicht mit Hilfe einer try … catch Anweisung abfangen konnte, war ich schon etwas stutzig und musste erst mal 15 Min googlen.

Während meiner Recherche fand ich raus das andere meistens das selbe Problem hatten. Dann bin ich aber doch wieder bei Adobe gelandet, habe mir dann die Klasse des URLLoaders etwas genauer angeschaut und prompt war da auch ein Beispiel.

Einfach einen IOErrorEvent-Handler and den URLLoader hängen und schon ist das Problem gelöst. Hier ein kleines Beispiel.

Beispiel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package
{
 import flash.display.MovieClip;
 import flash.net.FileFilter;
 import flash.net.URLRequest;
 import flash.net.URLLoader;
 import flash.errors.IOError;
 import flash.events.IOErrorEvent;
 import flash.events.Event;
 import flash.net.URLLoaderDataFormat;
 import flash.utils.Dictionary;
 /**
 * ...
 * @author Steffen Jäckel
 */
 public class LoadFile extends MovieClip
 {
  private static var _request:URLRequest;
  private static var _variables:URLLoader;
 
  function LoadGameData() {
    trace("Starte Datei...");
    _request = new URLRequest("DEINEDATEI");
    _variables = new URLLoader();
 
    // TEXT BINARY oder VARIABLES
    _variables.dataFormat = URLLoaderDataFormat.TEXT;
    _variables.addEventListener(Event.COMPLETE, completeHandler);
    _variables.addEventListener(IOErrorEvent.IO_ERROR, errorHandler );
    _variables.load(_request);
  }
 
  private function errorHandler(event:IOErrorEvent):void {
    trace(event);
  }
  private function completeHandler(event:Event):void {
    trace(event);
    trace("...fertig");
  }
 }
}

Links

http://www.thejaeck.net/2010/02/10/actionscript-3-urlloader-wirft-exception/trackback/