Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.03.2011, 21:15
Welcometo вне форума Посмотреть профиль Отправить личное сообщение для Welcometo Найти все сообщения от Welcometo
  № 1  
Ответить с цитированием
Welcometo

Регистрация: Mar 2011
Адрес: Уфа
Сообщений: 95
Отправить сообщение для Welcometo с помощью ICQ
По умолчанию Рандомный выбор из XML

Всем доброго времени суток. Делаю программу - тест. Собственно вопрос в заголовке - как рандомно выбрать элемент из xml файла(неповторяющийся)?
У самого только одна идея. Псле получения xml, он пробразуется в коллекцию. Затем получать рандомное число i (скажем, из массива целых чисел длиною равной длине xml коллекции, а затем удалять этот элемент из массива(чтобы не повторялось)). а затем выводить XMLList[i]= questionLabel.text . Есть у кого каие варианты ? Буду благодарен любой помощи.

Старый 01.04.2011, 01:49
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 2  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Чем плох предложенный вами вариант? Вот, скажем, он же в коде (код кривой, но рабочий).
Код AS3:
package 
{
    import flash.display.Sprite;
    import flash.events.Event;
 
    public class TestProject extends Sprite 
    {
        public function TestProject():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }
 
        private function init(event:Event = null):void
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            // Тестовая XML
            var xmlString:String = '<?xml version="1.0" encoding="UTF-8"?><data><question>Where is my mind?</question><question>So what?</question><question>No fun?</question></data>';
            var xml:XML = new XML(xmlString);
            // Создаем массив
            var questions:Array = [];
            // Заносим в него вопросы
            for (var i:int = 0; i < 3; i++) questions[i] = xml.question[i];
            // Выводим вопросы в случайном порядке
            var index:int;
            for (var j:int = 2; j >= 0; j--) {
                index = Math.round(Math.random() * j);
                trace(questions[index]);
                questions.splice(index, 1);
            }
        }
 
    }
}

Старый 01.04.2011, 03:52
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 3  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Типы XML и String в AS3 конвертируются друг в друга, кроме того, в AS3 можно использовать литерал XML. Т.е.
Код AS3:
var foo:XML = <foo/>;
это вполне обычный AS3 код.
Что до задачи: XMLList в чем-то очень похож на массив.
Код AS3:
var list:XMLList = <><foo/><bar/><baz/></>;
var position:int;
while (list.length())
{
    position = Math.random() * list.length();
    trace(list[position]);
    delete list[position];
}
__________________
Hell is the possibility of sanity

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:32.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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