Вход

Просмотр полной версии : как подгрузить параметры из файла?


Cramac
06.09.2007, 18:30
Всем привет. Делаю небольшую карту местности, хочу параметры обьектов храмить в хмл. Как сделать так, что бы при нажатии на какой либо объект на карте, открывался ролик с параметрами описанными в хмл?
И можно ли хранить настройки кнопок (цвета, названия) в хмл и применять их при загрузке первоначальной самой карты?

bettrrr
06.09.2007, 18:48
Всем привет. Делаю небольшую карту местности, хочу параметры обьектов храмить в хмл. Как сделать так, что бы при нажатии на какой либо объект на карте, открывался ролик с параметрами описанными в хмл?
И можно ли хранить настройки кнопок (цвета, названия) в хмл и применять их при загрузке первоначальной самой карты?
Можно.

var my_xml:XML = new XML();
my_xml.ignoreWhite = true;
my_xml.load("data.xml");
my_xml.onLoad = function(success) {
//тут делать то, что надо с XML
}

Но надо знать, что не получится обращаться к узлам так: node1.node23.node56.nodeValue
Т.е. в AS2 нет возможности указывать абсолютный путь к узлам, там надо указывать относительный, что для меня ОЧЕНЬ не удобно.

Почти написал класс, который делает дерево объектов, чтобы можно было указывать абсолютный путь к узлам, но из-за отсутствия клонирования объектов класс получается ресурсоёмким.

Надеюсь, что мне не часто придётся работать с AS (впрочем, как и с JS)

Psycho Tiger
06.09.2007, 18:49
Можно сделать все. Подгрузив что то из хмл делай с ним все что хотим - туда можно запихнуть и цвета, и настройки, даже акорды для игры на гитаре.

Чтобы подгружать только отдельную местность, есть 3 варианта:
1) загружать все и сразу а потом парситьво флэше, выдирая только те элменеты, которые нужны для этой зоны.
2) разбить в много много разных файлов, и загружать их
3) отправлять запрос на сервер, а сервер сам сгенерирует те хмл файл по твоему запросу.
Про хмл и флэш читать тут:
http://www.google.com/search?hl=ru&client=opera&rls=en&q=xml%2Bflash&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=

Cramac
06.09.2007, 19:06
Psycho Tiger, немного не то.
У меня карта вся готовая будет во флеше. А вот кнопки используемые на карте, точнее их параметры, хочу хранить в хмл. т.е. нажал на кнопку, открылся мульт указанный в хмл для этой кнопки, мульт использует доп параметры из хмл.

Kikasso
06.09.2007, 19:19
в AS2 нет возможности указывать абсолютный путь к узлам
Зато есть idMap, то есть достаточно указать ноде id и она будет там прописана.
var myXML = new XML("<x><node id='a' text='привет от а'/><node id='b'>привет от b</node></x>");
trace( myXML['idMap']['a'].attributes.text );
trace( myXML['idMap']['b'].firstChild.nodeValue );
почему пишу idMap не через точку - это свойство забыли задокументировать.

Psycho Tiger
07.09.2007, 13:42
Ну, раз так то это вообще просто:
Качем хмл файл, а после скажем при нажатии на кнопочку прокрутка вниз, ты прибавляеш из хмл файла нужную величину.
(Код передран от Kikasso)

var myXML = new XML("<x><node id='down' text='1/><node id='up'>2</node></x>");
up.onrRelease=function(){map._y-=myXML['idMap']['down'].attributes.text ); }
down.onrRelease=function(){ myXML['idMap']['down'].firstChild.nodeValue );


Код не тестил, но должно работать

Kikasso
07.09.2007, 20:47
Код не тестил, но должно работать
Протестите на досуге.
1) скобки надо открывать и закрывать - строка 3
2) в XML все - строки, надо конвертировать в число для арифметичческих операций - строка 2
3) а что вообще должна делать третья строчка?

Cramac
07.09.2007, 21:34
ну у меня скролов не планируется, у меня при нажатии на кнопку должет загрузится определенный ролик с планом дома и в нужных местах подрасить

Kikasso
07.09.2007, 22:22
Ну и в чем проблема? как параметр получить, написали. Осталось XML продумать, написать и загрузить его, а по загрузке настраивать карту.

Molecula
07.09.2007, 23:15
Про аттрибуты можно тоже не забывать...