0

私はxml画像ギャラリーを作っています。そして、親からパスを取得し、子ノードからイメージ名を取得する必要があります。しかし、urlrequest でこれら 2 つの URL を組み合わせると、画像が表示されず、「SecurityError: Error #2000: No active security context.」というメッセージが返されます。出力で。

ここに私の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 メソッドがルーニー (IMHO) であるという事実です。ご覧のとおり、パスの 1 つの参照をプルするのではなく、パスのすべての参照をプルし、その後に特定のサムの参照をプルします。

出力を読んだだけでは、XML ははるかに長く、上記のコードの 3 つのバージョンが含まれており、それぞれに graphic_design/ #がインクリメントされているように見えます。この場合、dot.notation 構文に、探している @path の特定のバージョンへの参照がありません。

実際にgallery_xml.gallery.@pathは、gallery_xml.gallery[0].@path

これは、XML 構造の特定のレベルに要素の複数のエントリがある場合、基本的にはその名前の要素の配列であるためです。

于 2012-05-03T17:31:13.000 に答える