Actionscript 3 动画2021动作脚本3 URL请求导致错误2035

Actionscript 3 动画2021动作脚本3 URL请求导致错误2035,actionscript-3,flash,adobe,adobe-animate,Actionscript 3,Flash,Adobe,Adobe Animate,我正在开发一个应用程序,我们正在使用Flash添加一个界面。在初始化过程中,应用程序加载到一个配置文件中,并引用图像路径。当我使用Loader和URLRequest类来加载这些图像时,路径不起作用,这会导致问题。基于我所研究的一切,我的代码应该可以工作。我有一个跟踪,它输出“source/icons/default.png”,这是外部图像的正确相对路径,并加载图像,但我需要使用一个变量来设置图像路径。使用变量newurlrequest(“source/icons/”+default.png)设置

我正在开发一个应用程序,我们正在使用Flash添加一个界面。在初始化过程中,应用程序加载到一个配置文件中,并引用图像路径。当我使用Loader和URLRequest类来加载这些图像时,路径不起作用,这会导致问题。基于我所研究的一切,我的代码应该可以工作。我有一个
跟踪
,它输出
“source/icons/default.png”
,这是外部图像的正确相对路径,并加载图像,但我需要使用一个变量来设置图像路径。使用变量
newurlrequest(“source/icons/”+default.png)设置URLRequest,导致它使用的完整文件路径看起来错误,并报告2035错误。有什么我做错了吗?我不知道现在该怎么办。我已验证该文件是否存在,并已验证该文件的路径

跟踪输出:
source/icons/default.png

错误输出:

[CompanionStatus] Error occurred while loading bitmap
[CompanionStatus] 2035 : Error #2035: URL Not Found. URL: file:///C|/Users/devtrooper/Desktop/project/source/icons/default.png
看起来flash正在用管道(|)替换驱动器号附近的冒号(:),我不确定这是否是问题所在

以下是我加载图像的方法:

private function getBitmapData(nameString:String, imagePath:String):void{
    try{
        var bitmapDataFunction:Function = addBitmapDataToDictionary(nameString);
        var path:String = ICON_FOLDER_PATH + imagePath;
        var loader:Loader = new Loader();
        var urlRequest:URLRequest = new URLRequest("source/icons/" + imagePath);
        trace("URLRequest.url " + urlRequest.url);
        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, bitmapDataFunction, false, 0, true);
        loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, handleBitmapDataError, false, 0, true);
        loader.load(urlRequest);
    } catch (e:Error) {
        log("Error occured while trying to load image data");
        log(e.name + " : " + e.message);
    }
}

您可以使用File方法代替urlRequest方法,如下所示:

var urlPath:String="";
var picFile:File = File.desktopDirectory.resolvePath("source/icons/default.png");//you can use applicationDirectory,applicationStorageDirectory,userDirectory,doumenntDirectory and ... 
if (picFile.exists == true) { 
     urlPath = picFile.url;
}

“C |…”是正确的输出,不应该是问题。此外,硬编码URL和构造URL之间应该没有区别,它们都是字符串。我将从硬编码和构造的URL之间的字符对字符的比较开始,应该有一些不同。IIRC您不能提供一个包含“file://C:”的URL。你需要让你的图片在其他网站上可用,然后提供直接的URL到那里,还需要解决如果你的SWF没有在同一个网站上发布时出现的安全问题。这只在AIR运行时可用。