Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   подгрузка Изображения (http://www.flasher.ru/forum/showthread.php?t=168164)

areostar 17.09.2011 21:27

подгрузка Изображения
 
Подскажите как мне сначала считать в массив все имена картинок(фаилов) из определённой папки. и потом подгрузить один из них по выбору пользователя!!?

Wolsh 17.09.2011 21:43

Из папки на сервере или локальной (на машине пользователя)?

areostar 17.09.2011 22:01

на компе. думаю XML пользовать:

Набрасал такой хмл:

Код:

<?xml version="1.0" encoding="UTF-8"?>
  <gallery>
  <image video="f_video/first.swf">f_images/first.png</image>
  <image video="f_video/secons.swf">f_images/second.png</image> 
  </gallery>

В сети нащёл такой пример для чтения чтения

Код:

var myXML:XML = new XML();
    var XML_URL:String = "http://www.example.com/Sample3.xml"; 
    var myXMLURL:URLRequest = new URLRequest(XML_URL);   
    var myLoader:URLLoader = new URLLoader(myXMLURL);
    myLoader.addEventListener("complete", xmlLoaded);
 
    function xmlLoaded(event:Event):void
  {
        myXML = XML(myLoader.data);
        trace("Data loaded."); 
  }

как я понимаю в слушателе получаем содержимое файла а как его парсить!? получать содержимое узлов и параметров!?

dimarik 17.09.2011 22:51

Особо умного не скажу, но позанудствую.

FlashPlayer не предоставляет сервиса перечисления файлов и директорий.

Цитата:

На компе.
"Компом" является и сервер и машина пользователя. Суть различий лишь в роли каждого из них.

Wolsh 17.09.2011 23:29

areostar, ну на самом деле, зачем Вы подменяете понятия? К чему было слово "папка", если вопрос - "загрузить изображения из xml-списка"? Тема наверное на первом месте как по популярности на этом форуме так и вообще в списке скиллов.
Код AS3:

function xmlLoaded(event:Event):void 
{
    myXML = XML(myLoader.data);
    trace("Data loaded.")
    var imageList:XMLList = myXML..image.text();
    trace(imageList.toXMLString());
}

Почитайте в хелпе про е4х и XMLList. Ответа на вопрос "как парсить" нет, пока нет формата, в который парсить. Давайте повнимательней.

Добавлено через 9 минут
если в массив, то можно так
Код AS3:

var imageList:XMLList = myXML..image.text();
var imageURLs:Array = imageList.toXMLString().split("\r");
trace(imageURLs);

или циклом. XLList это индексированный список, с ним можно работать как с массивом, в том числе проходить по нему как по массиву циклом. Именно поэтому само преобразование в массив часто бессмысленно и можно пользоваться самим XMLList.

areostar 18.09.2011 01:04

Сделал как сказали! сначало комп чиитал! но при очередной компеляции выкинул TypeError: Error #1090: XML parser failure: element is malformed.

в списке ощибок токого номера не нащел! о что не так

dimarik 18.09.2011 01:14

компеляции [x]. Тему можно закрывать.

areostar 18.09.2011 01:29

С ошибкой разобрался!

Только var imageURLs:Array = imageList.toXMLString().split("\r");
чтото не работает! хотя в имеджлесте все что надо есть! как ещё от туда можно данные вынуть!

Wolsh 18.09.2011 01:39

Код AS3:

var imageURLs:Array = [];
for(var i:uint = 0; i < imageList.length(); i++)
{
    imageURLs.push(imageList[i]);
}
trace(imageURLs);

Еще раз замечу, я бы не стал так делать - выдернуть URL из XMLLista также просто, как и из массива - imageList[i].

areostar 18.09.2011 13:29

Считал содержимое хмл в массив. Теперь надо подгрузить и разестить на сцене фотки пишу

Код:

  var x_start:int = 10, y_start:int = 10;
                        for(var i:uint = 0; i < image_array.length; i++)
                                                {
                                var mc:MovieClip = new MovieClip();
                               
                               
                                var url_request:URLRequest = new URLRequest(image_array[i]);
                                loader.load(url_request);
                                                                loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
                                loader.x = 0; loader.y = 0; mc.addChild(loader);
                                gallery_array.push(mc);
                                gallery_array.push(mc);
                        }
                       
                        for(var j:uint = 0; j < gallery_array.length; j++)
                        {
                                gallery_array[j].x = x_start;
                                gallery_array[j].y = y_start;
                                stage.addChild(gallery_array[j]);
                                x_start += 150;
                        }

                                                private function onComplete(e:Event):void
                                {
                              loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onComplete);
                                }

но появляется только второе фото!! тресом проверял все в порядке! может я ещё гдето ошибся!?


Часовой пояс GMT +4, время: 13:10.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.