Просмотр полной версии : ошибка обращения к undefined
Добрый день.
Подскажите, можно ли во Flashdevelop (проект AS2) отловить ошибку при обращении к undefined объектам?
Т.е. цель получать некий сигнал об этом, способом, отличном от явной проверки на undefined.
(Проект растет, много отладочного кода ухудшают восприятие логики, а механизм сигнализирования помог бы из абстрактного "почему не работает" сразу отвечать на вопрос "почему объект неопреден?"
В as1 была такая возможность с помощью resolve
MovieClip.prototype.__resolve = function (f) {
trace ("FUNCTION '" + f + "' NOT FOUND");
};
_root.dge ();
Типа пытаемся вызвать метод dge и если он не определен, то вызывается __resolve.
Можно попробовать использовать его.
Спасибо, почитал, то что нужно.
Вроде можно даже применять не только к MovieClip но в целом к Object'у
Object.prototype.__resolve = ...
а "вроде", потому что ни 1-й ни 2-й вариант компилятор проглатывать не захотел.
как только появлется такая конструкция - проект зависает.
Может проблема в использовании Mtasc?? (v1.14)
Я давно не работал с as1/as2 и mtasc, не помню была ли у меня подобна проблема.
спасибо и на этом. подниму вопросом в ветке as1/2, может кто и сталкивался.
решение оказалось следующим (FD, проект AS2)
попинал свою невнимательность, добавил подчеркивание в совет выше
Object.__proto__.__resolve = function (f:String) {
trace ("FUNCTION '" + f + "' NOT FOUND");
}
еще вариант: читаем внимательно документацию по __resolve, смотрим рабочий пример для конкретного объекта
// новый объект
var myObject:Object = new Object();
// определим __resolve функцию
myObject.__resolve = function (name) {
return "Hello, world!";
};
trace (myObject.property1); // output: Hello, world!
trace (myObject.property2); // output: Hello, world!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.