![]() |
Странный глюк при работе с XML.
Кто нибудь знает в чем может быть проблема?
Вот эта функция не работает. Код AS3:
А вот так работает: Код AS3:
Разобрался. setName, которое я опрометчиво использовал в качестве имени параметра, видимо используется где-то еще. Очень жаль что Flash при компиляции даже в strict-mode о таких вещах не предупреждает. |
Похоже на баг компилятора. Начался с примерно 4.0 Flash Builder SDK. У меня споткнулось на имени параметра как "name".
Код AS3:
|
Тут тяжело предупредить, нужно понимать как работает оператор "фильтр". Т.е. xml.(expression) - вот это.
Работает он очень похоже на with, и поэтому возможны похожие казусы, но компилятору трудно понять, что это не то, что хотелось. Т.е. что происходит внутри фильтра: в цепочку областей видимости добавляется текущий узел (который мы сейчас просматриваем), а все связывания объявленные внутри фильтра ищутся в этой цепочке. Таким образом, если связывание не находится у текущего узла, то его будут искать дальше во всех доступных звеньях цепочки (все импорты, this, super и т.д.). Вообще, поведение этого оператора на столько не предсказуемо и может измениться динамически в уже скомпилированой программе, что я бы поостерегся его использовать. Или, по крайней мере использовать его исключительно со связываниями в которых однозначно указан объект которому они принадлежат, например: Код AS3:
Код AS3:
Во всех остальных случаях вы рискуете обратится к свойству чего-то о чем вы вообще ничего не знаете и в каких-то очень редких случаях можете таким образом случайно выдать секретную информацию. |
wvxvw, как объяснить появление бага сменой SDK на более высокую версию. В 3.2 работало нормально.
|
А что значит "споткнулся"?
Были баги связаные с e4x. Возможно что-то исправили. Код Код AS3:
|
| Часовой пояс GMT +4, время: 15:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.