В настоящее время пытаюсь забубемить одну штуковину (какую, пока - секрет, но надеюсь в скором времени вы все сможете ее заценить). Так вот.... о чем это я? да... четвертая бутылка пива наверное была лишней (да и третья, наверное, тоже) а, вспомнил!! Так вот, для реализации моей затеи мне понадобилось использовать во flash технологию XML. ну что это такое я примерно понимал и ранее встречал, но как с ним работать не знал... пришлось покапаться в интернете, полистать, купленную ранее книгу по флешу и о чудо я понял как сие чудо устроенно и самое главное работает! Думаю, что с этим сталкиваться пришлось не только мне, но и еще кому-нибудь придется - решил поведать вам азы иксэмело-флешового программирования. Не фига себе я слово придумал, точно четвертая бутылка пива была лишней...... а может я попаду в словарь велико-русского языка? ээээ че-то я отошел от темы, так вот, что же такое XML?
приведу пример:
<sergun/> - это и есть самый простой пример XML-а. Не правда ли просто?
Для того, чтобы флэш что-то понял, достаточно этой одной строки.
Еще в XML есть такое понятие как ноды (node)... ээээ если мне не изменяет память - переводится как "узлы". приведем пример:
<sergun/><sergun/><sergun/><sergun/><sergun/>
перед нами XML, состоящий из пяти нодов (узлов)
Теперь давайте сохраним файл с каким-нибудь хитрющим названием, к примеру "sergun_the_hot_finnish_guy.fla

",
иль еще каким-нибудь названьем... ну смотря какая у вас фантазия, у меня она например очень богатая, особенно, когда простимулированная парочкой бутылок пивка

и приступим к созданию первого нашего обработчика XML.
для начала работы с XML надо написать такую хитрую штуковину:
[tt]myXML = new XML("<sergun_forever/>"

;
trace(myXML);[/tt]
жмем заветную комбинацию ctrl+enter, и о чудо!!! выскакивает надпись <sergun_forever/>
...только смысла в этом немного, поскольку увидим мы просто то,
что написали и работать с этим пока совсем не интересно.
Да и на самом деле мы увидим не наш первый НОД, а весь XML, который там есть
(который впрочем тоже сам по себе один большой НОД =))...
Чтобы увидеть именно первый НОД в 'myXML', надо написать хотя бы его порядковый номер.
А поскольку он у нас там один и самый первый, то можно увидеть его так:
[tt]trace(myXML.firstChild);[/tt]
firstChild - первый ребенок.
ха... но это еще не все. можно еще вот так забубенить:
[tt]trace(myXML.childNodes[0]);[/tt]
или так:
[tt]trace(myXML.lastChild);[/tt]
но об этом после...
а пока давайте разберемся в строении нода(узла)
у каждного нода есть начало
"<"
такая скобочка
есть какое-то имя (nodeName)
"sergunavichus"
и есть конец!
"/>"
но это еще не конец! =)
нод может выглядеть совсем не так, но останется он почти тем же самым нодом
Например перепишем скрипт вот так:
[tt]myXML = new XML("<this_is_XML></this_is_XML>"

;
trace(myXML.firstChild);
[/tt]
Вау!!!
И мы все-равно увидим наш первоначальный вариант!
Хотя нод теперь вот такой:
<this_is_XML> -- так нод открываеися
</this_is_XML> -- а так закрывается
В нашем же НОДе пока есть только имя.
Перепишем скрипт вот так:
[tt]myXML = new XML("<this_is_XML_node></this_is_XML_node>"

;
trace(myXML.firstChild.nodeName);[/tt]
И мы узнаем как тя зовут =)
А точнее увидим nodeName фёрстчайлда!
здесь firstChild - это и есть самый первый нод в myXML.
Такс, с фёрстчайлдом мы разобрались, идем дальше
lastChild - последний ребенок
lastChild - это будет самый последний НОД в указаном списке.
написав:
[tt]trace(myXML.lastChild.nodeName);[/tt]
мы получим тоже самое, что и в случае с firstChild, но только потому, что он всего один
и является одновременно и первым и последним.
Тэкс, давайте теперь немного посложнее.
Перепишем скрипт вот так:
[tt]myXML = new XML("<this_is_XML_node1/><this_is_XML_node2/><this_is_XML_node3/><
this_is_XML_node4/>"

;
trace(myXML.childNodes);[/tt]
И увидим мы длииииинную цепочку нодов, которые есть в 'myXML' =).
На самом деле "childNodes" это и есть цепочка нодов (МАССИВ (array))!
А для того, чтобы их всех посчитать придумали способ, который подходит для любого массива во флэше.
LENGTH - длина
anyArray.length - соответсвенно, длина массива "anyArray".
myXML.childNodes.length - тоже длина, но уже нашего массива "myXML.childNodes".
Напишем:
myXML = new XML("<this_is_XML_node1/><this_is_XML_node2/><this_is_XML_node3/><
this_is_XML_node4/>"

;
myTextField.text = myXML.childNodes.length;
И увидим число "4" - именно столько у нас сейчас нодов.
----------------------------------------------------------------------
Так ладно пошел спать потом допишу................