Очистка пути к файлу в AS3 FlashDevelop

Сегодня у меня была эта проблема около 4 часов, когда я не мог загрузить файл XML в AS3. Продолжал давать мне ошибку Stream. Похоже, он не смог найти путь к файлу. Итак, я схватил ошибку:

Error #2044: Unhandled ioError:. text=Error #2032: Stream Error. URL: file:///C|/Users/Hmmm/Desktop/Flash%20Projects/Jumper/bin/testxml.xml
at com::LoadXML()[C:\Users\Hmmm\Desktop\Flash Projects\Jumper\src\com\LoadXML.as:14]
at com::MainState()[C:\Users\Hmmm\Desktop\Flash Projects\Jumper\src\com\MainState.as:20]

Потом я заметил - Jumper/bin/testxml.xml - ищет его в папке bin... Почему?? Итак, я переместил файл в корзину и вуаля - он работает. Проблема в том, что я не хочу, чтобы он был в папке bin.

Вот мой базовый класс загрузчика XML:

package com
{
import flash.net.URLLoader;  
import flash.net.URLRequest;  
import flash.events.Event;  
import flash.events.EventDispatcher; 

public class LoadXML extends EventDispatcher  
{
    private var dataXML:XML;

    public function LoadXML(xmlFileName:String):void  
    {  
        var xmlLoader:URLLoader = new URLLoader(new URLRequest(xmlFileName));
        xmlLoader.addEventListener(Event.COMPLETE, loadedCompleteHandler);  
    }  

    private function loadedCompleteHandler(e:Event):void  
    {  
         e.target.removeEventListener(Event.COMPLETE, loadedCompleteHandler);  
         try {  
            dataXML = new XML(e.target.data);
        } catch(e:Error) {  
            throw new Error("Error loading XML");  
        }  
    }  
}
}

И мой вызов к нему из другого класса (та же папка):

public var xmlloader:LoadXML = new LoadXML("testxml.xml");

Может кто-нибудь пояснить, как ссылаться на этот файл... В конечном итоге я хочу, чтобы в нескольких файлах xml хранились такие вещи, как сведения об элементах, местоположения врагов и т. д. для игры. Пример пути, который я хотел бы, будет следующим: src/com/maps/mapData.xml ---- Приветствуется любая помощь. Спасибо.


person PHaZerous    schedule 09.11.2016    source источник
comment
Чтение этого немного помогло. stackoverflow.com/questions/13298843/ public var xmlloader:LoadXML = new LoadXML(../src/com/testxml.xml);   -  person PHaZerous    schedule 09.11.2016
comment
Почему вы не хотите, чтобы этот файл был в папке bin? Где бы вы предпочли хранить его вместо этого?   -  person Brian    schedule 10.11.2016


Ответы (1)


Вы можете загрузить XML из произвольного места, указав полный путь:

new LoadXML("C:/Users/Hmmm/Desktop/Flash Projects/Jumper/src/com/testxml.xml");

или указав родительский каталог в относительном пути:

new LoadXML("../src/com/testxml.xml");

Обратите внимание, что редко помещают ресурсы в папку ~/src/ при развертывании проекта в рабочей среде.

person Brian    schedule 10.11.2016