只需从 xml 加载 image1 和 image2 并将其放置在舞台上各自的 MC 中

发布于 2024-11-02 09:00:15 字数 571 浏览 5 评论 0原文

这让我抓狂。我想要的应该非常简单,但他们似乎让它变得困难,而且论坛上的人们似乎有意给出复杂的答案。请帮忙提供一个简单的解决方案。

我有一个名为 userData.xml 的 XML,其中包含大量数据,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<videos>
    <vid src="videos/video1.flv"/>
    <vid src="videos/video2.flv"/>
</videos>
<images>
    <img src="images/image1.jpg"/>
    <img src="images/image2.jpg"/>
</images>

我想做的就是(使用 AS3)获取 image1.jpg 并将其添加到 imageHolderOne_mc 并获取 image2.jpg 将其添加到 imageHolderTwo_mc。完全忽略 XML 的视频部分(必须保留用于其他用途)

我真的希望有人可以提供帮助 提前致谢

this is driving me nuts. What I want should be super simple but they seem to have made it dificult and people on forums seem intent on giving complicated answers. please help with a simple solution.

I have an XML with lots of data in called userData.xml that looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<videos>
    <vid src="videos/video1.flv"/>
    <vid src="videos/video2.flv"/>
</videos>
<images>
    <img src="images/image1.jpg"/>
    <img src="images/image2.jpg"/>
</images>

ALL I want to do is (using AS3) get image1.jpg and add it to imageHolderOne_mc and get image2.jpg add it to imageHolderTwo_mc. Completely ignoring the videos part of the XML (which must stay for other uses)

I realy hope someone can help
Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心意如水 2024-11-09 09:00:15

查看来自republicofcode的xml入门
以及如何动态加载图像 在 as3 中

基本上是这样的...

var myXML:XML;

var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("yourxmlfile.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);

function processXML(e:Event):void {
    myXML = new XML(e.target.data);
    for each(var imgSrc:String in myXML.images.*.@src){
        createLoader(imgSrc, #NAME_OF_MOVIE_CLIP#);
    }
}

function createLoader ($imgUrl:String, $placeholder:MovieClip){
    var myLoader:Loader = new Loader();
    myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderReady);

    var fileRequest:URLRequest = new URLRequest($imgUrl);
    myLoader.load(fileRequest);

    function onLoaderReady(e:Event) {     
          // the image is now loaded, so let's add it to the display tree!     
        $placeholder.addChild(myLoader);
    }
}

have a look at the xml primer from republicofcode
and how to load images dynamically in as3

basically something like...

var myXML:XML;

var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("yourxmlfile.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);

function processXML(e:Event):void {
    myXML = new XML(e.target.data);
    for each(var imgSrc:String in myXML.images.*.@src){
        createLoader(imgSrc, #NAME_OF_MOVIE_CLIP#);
    }
}

function createLoader ($imgUrl:String, $placeholder:MovieClip){
    var myLoader:Loader = new Loader();
    myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderReady);

    var fileRequest:URLRequest = new URLRequest($imgUrl);
    myLoader.load(fileRequest);

    function onLoaderReady(e:Event) {     
          // the image is now loaded, so let's add it to the display tree!     
        $placeholder.addChild(myLoader);
    }
}
悲喜皆因你 2024-11-09 09:00:15

尝试包装在根标签中。
e4x 标准/
根标签被忽略
因此,如果没有根标记,XML 解析器就会感到困惑。
访问数据时,您还将忽略根标签并且不引用它。

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <videos>
      <vid src="videos/video1.flv"/>
      <vid src="videos/video2.flv"/>
  </videos>
  <images>
      <img src="images/image1.jpg"/>
      <img src="images/image2.jpg"/>
  </images>
</root>

像这样访问。

    var myXML:XML = new XML(
    <root>
      <videos>
          <vid src="videos/video1.flv"/>
          <vid src="videos/video2.flv"/>
      </videos>
      <images>
          <img src="images/image1.jpg"/>
          <img src="images/image2.jpg"/>
      </images>
    </root>
    );

trace(myXML)
    for each(var img:XML in myXML.images.img ){
      trace( img.@src )
    }

Try wrapping in a root tag.
Root tags get ignored with e4x standard/
So by not having a root tag the XML parser gets confused.
When accessing the data you will also ignore the root tag and not refer to it.

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <videos>
      <vid src="videos/video1.flv"/>
      <vid src="videos/video2.flv"/>
  </videos>
  <images>
      <img src="images/image1.jpg"/>
      <img src="images/image2.jpg"/>
  </images>
</root>

Accessed like so.

    var myXML:XML = new XML(
    <root>
      <videos>
          <vid src="videos/video1.flv"/>
          <vid src="videos/video2.flv"/>
      </videos>
      <images>
          <img src="images/image1.jpg"/>
          <img src="images/image2.jpg"/>
      </images>
    </root>
    );

trace(myXML)
    for each(var img:XML in myXML.images.img ){
      trace( img.@src )
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文