AS3 FlashDevelop中的文件路径清除

时间:2016-11-09 03:27:30

标签: xml actionscript-3 flash flashdevelop urlloader

今天我有这个问题大约4个小时,我无法在AS3中加载XML文件。保持给我一个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并且瞧 - 它有效。问题是 - 我不希望它在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 ---- 任何帮助表示赞赏。谢谢。

1 个答案:

答案 0 :(得分:0)

您可以通过指定完整路径从任意位置加载XML:

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

或通过在相对路径中指定父目录:

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

请注意,在将项目部署到生产环境时,将资产放在〜/ src /文件夹中并不常见。