Показать сообщение отдельно
Старый 18.01.2017, 08:58
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 16  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
А как это понимать тогда
Это объяснение того, что делает appendChild(). У Вас проблема не в appendChild(), а в том, у какого объекта Вы пытаетесь вызвать этот метод. Проблема с пониманием, что XML это не просто какой-то текст, для которого "добавить" означает "добавить после последней буквы". XML это многоуровневый объект, да еще с такой неочевидной возможностью, как одинаковые названия уровней. Ни в каких других объектах языка этого нет. Никто не может иметь два РАЗНЫХ свойства с одинаковым названием. XML может. Поэтому, если Вы в ноду <человек/> добавили две ноды <рука/> и теперь хотите к рукам добавить пальцы, Вам необходимо как-то конкретизировать, на какую именно руку. И здесь "Добавляет данный дочерний элемент в конце свойств объекта XML" означает, что палец будет добавлен в конце свойств (то есть — нод) руки. Не в конце "текста" всего XML, а в конце объекта XML <рука/>, потому что Вы вызываете метод appendChild() у объекта человек.рука
Код AS3:
человек.рука.appendChild(палец); // свойство палец будет добавлено в свойства руки
И вот, если рука у человека одна, то разночтений не возникает и обращение через оператор "точка" возвращает эту единственную руку, которая имеет тип XML и appendChild() вызывается у этой руки.
Но если рук две и больше, то человек.рука не может вернуть ссылку на конкретный объект "рука", и возвращает список всех рук, принадлежащих данному объекту "человек", в виде коллекции типа XMLList.
И вот теперь, чтобы вызвать appendChild(<палец/>) у какой-то конкретной "руки", Вам необходимо выбрать её из этого списка, указать на одну конкретную руку, "в конец свойств" которой и будет добавляться новый палец. "В конец свойств" здесь подразумевает, что если у этой руки уже есть какие-то свойства (ноды), то новое свойство окажется в конце этого списка, а не в начале, как в случае вызова метода prependChild(), только и всего. Надо только понимать, о списке свойств КАКОГО объекта идет речь. Под "объектом XML" в данной справке подразумевается тот, у которого вызывается метод appendChild(), а не весь XML-документ и не "та нода, которую я создал последней"
__________________
Reality.getBounds(this);