Часто встречающейся ошибкой у flash-разработчиков при написании программы является ее обращение к несуществующему свойству или переменной.
Обычно это случается потому, что обращение к свойству происходит до его определения. Так же возможна ошибка в областях видимости. Поэтому было бы замечательно, если разработчик мог точно отследить эту ошибку и мог не "трейсить" каждую подозрительную переменную.
Оказывается, это вполне возможно, если воспользоваться недокументированным служебным методом __resolve. Вызов этого метода интерпретатор производит каждый раз при обращении к несуществующему свойству. В качестве параметра методу передается имя этого свойства.
Как это можно обыграть на практике? Достаточно дополнить код, отвечающий за инициализацию приложения, следующими строками:
-
Object.prototype.__resolve = function(propName){
-
trace("Variable \""+propName+"\" is undefined");
-
}
Теперь каждый раз при возникновении подобной ошибки в окне "Output" будет появляться следующий текст Variable "имя свойства" is undefined:
-
var a = b; //проверяем
По-моему, очень полезный метод. Я часто использую его при отладке своих проектов.
чудесно
из этой же серии переписывание метода toString чтобы понять какой объект к тебе вернулся