четверг, марта 20, 2008

XMLList и его длина. AS3

Ужасные грабли. Для того, чтобы получить длину XMLList мы по привычке пишем xml_list.length;. Но это неверно, так как length является МЕТОДОМ!
Это удивительная и ужасная непонятность, создающая кучу проблем. Особенно, когда идет работа с объектами, генерируемыми байндингами и другими неявными ссылками, где length не подставляется автоматом.
Итак, обращаем особое внимание:
Не xml_list.length;, а xml_list.length();
То же самое относится и к классу XML.

4 комментария:

Unknown комментирует...

ну вообще не вижу ничего не понятного. там всё является методами. иначе не вижу способа обратиться к узлу с именем length.

whitered комментирует...

у массива длину можно изменить через length, а у xmllist - нельзя, потому так и сделано

Unknown комментирует...

И правда, что это я так разволновался. Логика ясна, спасибо - сразу не сообразил.

Теперь грабли стали обоснованными и понятными :). Но наступить на них довольно легко.

Анонимный комментирует...

Спасибо. Наступил :) далее гуглил, далее ваш блог, далее ответ, и решение.