如何在 AS3 中正确将 URL 传递给 UrlRequest?

Posted

技术标签:

【中文标题】如何在 AS3 中正确将 URL 传递给 UrlRequest?【英文标题】:How to pass URL to UrlRequest properly in AS3? 【发布时间】:2014-07-02 04:32:12 【问题描述】:

我有一个文件 abc.swf 嵌入在一个名为 index.html 的 html 文件中

SWF文件需要访问abc.xml

abc.xml存储在Rooms/abc.xml

index.html 存储在Schedule/index.html

abc.swf,我有代码:

inforequest=new URLRequest("~/Rooms/abc.xml");

但是我得到了一个错误:

Error #2044: Unhandled ioError:. text=Error #2032: Stream Error

我知道这是因为 URL 错误,但我不知道如何解决。 我试过了:Rooms/abc.xml, abc.xml, ../Rooms/abc.xml 但它们都不起作用。 请帮忙!

编辑:

这是html文件:

@model Booking_Ticket_Management_System.Models.Schedule

@
ViewBag.Title = "XmlGenerate";


<h2>Choose your seats</h2>
<object  >
<param name="movie" value="~/Rooms/@Url.Content(Model.Room.Map)"/>
<embed src="~/Rooms/@Url.Content(Model.Room.Map)"  />
</object>

【问题讨论】:

我还建议实际聆听IOErrorEvent.IO_ERROR,不要让它向用户抛出错误。 最后,我做对了。谢谢您的回答。我没有处理 IOErrorEvent。这就是为什么它没有工作。 【参考方案1】:

养成始终添加至少 2 个侦听器的习惯:Complete - 通常由所有人添加,而 IOErrorEvent 通常被所有人跳过:)

var loader:Loader = new Loader();

    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderHandler, false, 0, true);
    loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loaderHandler, false, 0, true);

    loader.load(new URLRequest("path/to/image.jpg"));

//...
protected function libLoadHandler(e:Event):void 

    var loader:Loader = (e.target as LoaderInfo).loader;
    if(e.type == Event.COMPLETE || e.type == IOErrorEvent.IO_ERROR)
    
        //unregister both as COMPLETE and IO_ERROR are "finishing" events
        loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loaderHandler, false);
        loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, loaderdHandler, false);

        //do something after event based on event type
    

【讨论】:

【参考方案2】:

试试这个,

var myRequest:URLRequest = new URLRequest("../abc.xml");

【讨论】:

这意味着我必须使用绝对网址。有没有办法使用相对网址? 如果你想使用相对 URL,试试这样 var myRequest:URLRequest = new URLRequest("../abc.xml"); 当我使用绝对 URL 并将 swf 文件放入与 html 文件相同的文件夹中时,然后我运行 swf 文件,它可以工作,但如果我运行 html 文件,它就不起作用。我不知道为什么。 您是否在该 HTML 页面中嵌入了 SWF 文件? 否则试试这个***.com/questions/137326/…

以上是关于如何在 AS3 中正确将 URL 传递给 UrlRequest?的主要内容,如果未能解决你的问题,请参考以下文章

将 AS2 SWF 加载到 AS3 SWF 中并在 URL 中传递变量

JS如何传递ByteArray类型 给as3?

如何正确地将 RelayState 传递给 Okta 的 ACS URL?

如何将JSON Web令牌(JWT)传递给get请求

ASP.NET MVC我想重定向到另一个将我的模型传递给它的动作,以获得正确的URL

AS3读取txt文档