Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Импотр текстовых данных в компонент List
Flash Zone Forum > Macromedia Flash > ActionScript
stromen
Доброго времени суток!
Ребят, возникла такая вот необходимость.
У меня на диске есть файл с именами пользователей. Выглядит он примерно вот так:

Саша
Коля
Дима
...

Новое имя с новой строки.
Как мне импотрировать эти имена в стандартный компонент List?
Корень проблемы в том, что количество пользователей может изменяться. Чтобы каждый раз не переделывать и не перекомпилировать swf-файл, я хочу сделать импорт данных из txt-файла. Таким образом нужно будет просто добавить имя пользователя в txt-файл.

Не исключаю, что есть другие способы. Если они будут решать данную проблему, то буду рад выслушать.

С уважением.
Rohan
Идеальный вариант для этого - XML-документ. Например,
<user>Вася</user>
<user>Саша</user>
<user>Дима</user>
Далее просто загрузить эти данные во флеш:
Код
var users:XML = new XML();
users.ignoreWhite = true;
users.onLoad = function(success:Boolean){
    if(success){
        var userList:Array = [];
        for(var i:Number=0; i<this.childNodes.length; i++)
            userList.push(XMLNode(this.childNodes[i]).childNodes);
        trace(userList);
    }
}
users.load("filename.txt");

Только файл с данными должен быть сохранен в кодировке UTF-8 smile.gif
tiHo
и теперь только остается в цикл for дописать:

Код
list.addItem(userList[i].join(''))
smile.gif
MustLive
Цитата(tiHo @ 28.07.2006 - 12:33) *
и теперь только остается в цикл for дописать:

Код
list.addItem(userList[i].join(''))
smile.gif

Это нужно, чтобы добавить элементы нашего масива userList в список list (будь то элемент ComboBox или ListBox).
Код
for(var i=0; i<userList.length; i++) {
    list.addItem(userList[i].join(''));
}


Также можно использовать и другой более лаконичный подход (без цикла и перебора всех элементов):
Код
list.setDataProvider(userList);
stromen
Ух, ребята!
Мега респект!
Все попробовал, все работает, СУПЕР!
Спасибо вам большое!
Русская версия IP.Board © 2001-2009 IPS, Inc.