0

我正在制作一个 xml 图片库。我需要从父节点获取路径,从子节点获取图像名称。但是当我在 urlrequest 中结合这两个 url 时,它不会显示图像并返回“SecurityError:错误 #2000:没有活动的安全上下文”。在输出中。

这是我的xml代码:

<gallery name="Poster" path="gallery/graphic_design/1/">
    <image img="im1.jpg" thumb="thumb1.jpg"/>
    <image img="im2.jpg" thumb="thumb2.jpg"/>
    <image img="im3.jpg" thumb="thumb3.jpg"/>
</gallery>

这是我的 as3 代码

var main_path = gallery_xml.gallery.@path;
var thumb_url = main_path + images[i].@thumb;
var thumb_loader = new Loader();
thumb_loader.load(new URLRequest(thumb_url));

在我追踪它之后。它显示了来自 5 个画廊的所有路径,而不是来自父画廊的路径。

gallery/graphic_design/1/gallery/graphic_design/2gallery/graphic_design/3gallery/graphic_design/3gallery/graphic_design/3gallery/graphic_design/3gallery/graphic_design/3thumb1.jpg

我应该如何让它只加载来自父级的路径?

4

1 回答 1

0

错误 #2000 通常是文件未找到错误。您可以通过运行 IOErrorEvent 获得更多信息,如下所示:

thumb_loader.addEventListener(IOErrorEvent.IO_ERROR, IOError)

function IOError(e:IOErrorEvent):void {
    trace(e.text);
}

然而,眼前的事实是,AS3 使用的 XML 方法很愚蠢(恕我直言)。正如您所看到的,它不是提取路径的一个引用,而是提取路径的所有引用,然后是拇指的特定引用。

仅从阅读输出来看,您的 XML 似乎要长得多,包含上述代码的 3 个版本,每个版本都有一个递增的 graphics_design/ #。如果是这种情况,您的 dot.notation 语法中缺少对您正在寻找的特定版本的 @path 的引用。

在实践中,gallery_xml.gallery.@path变成gallery_xml.gallery[0].@path

这是因为,当一个元素在 XML 结构中的特定级别有多个条目时,它基本上是一个具有该名称的元素数组。

于 2012-05-03T17:31:13.000 回答