PDA

Просмотр полной версии : И снова к текстовому файлу...


quazare
01.08.2004, 21:10
Загрузка данных из текстового файла в массив во флеше

Еще раз возвращаюсь к теме...

Как сделать обращение к файлу для использования данных файла в массиве флеша... к примеру содержание файла data.txt такое:

1010101010101111100100110
0001010101010101000111000
1111100010101011001010101
.....
0101011001010101010101111

и тому подобное...

как обработать и занести в массив Каждую 1 и 0???

Nox Noctis
01.08.2004, 22:18
1. для загрузки: создать объект XML, использовать его метод XML.load()

2. для отслеживания окончания загрузки: создать обработчик события XML.onData или XML.onLoad

3. для разбиения загрузившегося в объект XML текста на строки: использовать функцию String.split, считая разделителем символы "\r\n" (этими символами кодируется перенос строки). т.е. необходимо взять загрузившуюся строку и вызвать относительно неё метод split("\r\n")

4. для разбиения получившихся строчек на отдельные символы "0" и "1" использовать ту же самую функцию String.split с пустым разделителем: String.split("")

5. при необходимости после этого перевести "0" и "1" в числа функцией Number()


алгоритм:
вызвать загрузку. в обработчике события онЛоад (или онДата) вызвать разбиение загрузившейся строки на массив отдельных строчек. далее в цикле перебрать все строчки и разбить их на отдельные символы. далее перебрать символы получившиеся из каждой строчки и перевести их в числа.

при таком раскладе у тебя получится лва цикла - один вложен в другой. и всё это добро вызывается из обработчика события, который срабатывает при окончании загрузки.


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

у меня всё :) если нужно всё это готовое - попроси D12, он тут генеральный альтруист :)

quazare
01.08.2004, 22:25
Огромное спасибо...
Алгоритм я знаю... я его делал на Pascal'e и на q-ваське... Я пока еще не знаю всех нюансов синтаксиса AS.
Вот и спросил...

D12
01.08.2004, 22:36
генеральный альтруист :)


ба ))))))))) да у меня новая должность))))))))))))))))

quazare
02.08.2004, 16:34
Дак все-таки где-бы взять понятную доку до XML, а то уж больно все его расхваливают и "обожествляют".... Меня это немного настораживает....

Просто у меня такая задумка... я хочу сделать следующее - игрушку типа стратегии, с подзагрузкой разнообразных карт, которые бы представляли бы собой структурированный файл... К примеру:
1 - земля
0 - вода
2 - гора
..........

Вот я хотел бы посмотреть как это все обработать в прообразе XML через Flash....

:rolleyes:

Nox Noctis
02.08.2004, 16:42
выше приведён алгоритм, что и как делать.

какой именно пункт вызывает затруднения? :)

quazare
02.08.2004, 16:44
Затрудняет синтаксис оператором и их незнание :confused:

Nox Noctis
02.08.2004, 16:47
я перечислил необходимые тебе названия. ты прочитал про них?

quazare
02.08.2004, 17:38
конечно, я прочел об этом из официального мануала по AS к флешу 7... ну чтож попробую все это реализовать потихоньку...

Nox Noctis
02.08.2004, 17:49
правильное решение :))

сначала попробуй - потом спроси что не получается...

quazare
02.08.2004, 19:59
a = new XML(); //Новый XML
b = new Array();

a.load("file.xml"); // Загрузил ...

if (a.onLoad){ // Если загрузился
trace("Zagruzilsia");
a.toString(); // Все в строчку....
}

Дальше надобно узнать длину строчки a.length - не работает :confused:

далее цикл 0... a.length{

b[i] = ...куда заносится обработанные данные....в виде Number...

}

:confused:

Nox Noctis
03.08.2004, 23:28
мало читал, читай еще :)

"обработчик события" - это функция

функция с особым именем.

некоторые объекты посылают сообщения о событиях, на которые реагируют другие объекты.

это сообщение нужно для того, чтобы при каком-то событии вызвать одноименную этому событию функцию у заданного объекта

в данном случае у тебя есть объект ХМЛ, которые посылает сообщение об окончании загрузки. называется это событие onLoad.

если создать в объекте ХМЛ функцию с именем onLoad, она сработает как только произойдет событие окончания загрузки этого ХМЛ объекта.

типичный сценарий:

a = new XML();
a.onLoad = function () {
// что нужно сделать когда этот объект загрузился
}
a.load(файл_который_надо_загрузить);