просто загрузите image1 и image2 из xml и поместите в соответствующие MC на сцене - PullRequest
0 голосов
/ 20 апреля 2011

это сводит меня с ума.То, что я хочу, должно быть очень простым, но они, кажется, усложнили задачу, и люди на форумах, похоже, намерены давать сложные ответы.Пожалуйста, помогите с простым решением.

У меня есть XML с большим количеством данных в файле userData.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 (которая должна оставаться для других целей)

Я очень надеюсь, что кто-то может помочь Спасибо заранее

Ответы [ 2 ]

1 голос
/ 20 апреля 2011

посмотрите на XML-праймер из RepublicOcode и , как динамически загружать изображения в 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);
    }
}
0 голосов
/ 20 апреля 2011

Попробуйте обернуть в корневой тег. Корневые теги игнорируются стандартом 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 )
    }
...