Говнокод
Вводная - во флеш-ролике в какой-то момент времени компонент оказывается недоступным для родительского контейнера. Проявляется баг непредсказуемо настолько, что за полчаса кликаний не удалось выяснить причину. Причём происходит это в момент инициализации-переинициализации нескольких мувиклипов, флешевого компонента, параллельно твинается анимация.
Как результат - выбрасывается ошибка ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller. и приложение встаёт раком.
Что-то подсказало мне, что затронуты настолько тонкие материи, что в исправлении бага я могу провести остаток дня.
Как вариант изобрёл говнокод. Это - AS3, но тут это - неважно, главное - сам принцип.
-
// method that break down the application
-
public function hide():void
-
{
-
try
-
{
-
removeMenu();
-
TextField(txtTitle).text = '';
-
// WTF place - this setter raise error
-
TextArea(txt).htmlText = '';
-
} catch (e:Error) {
-
// russians are not surrender!
-
// catch error and call them recursively
-
trace(e);
-
hide();
-
}
-
}
Вкратце - если случается ошибка (примерно 2% вызовов) - рекурсивно вызываем себя снова, на этот раз уже всё ок.
Я бы лично вот за такой код закидывал тухлыми яйцами.
При плохом раскладе его может просто зациклить (в моём случае, правда, это работает на 100%, ну может на 99.и много девяток).
Вот так вот и рождаются байки об индусах.
А зачем я это написал? Так, в порядке самокритики и чиста поржать. А, ну да, раскрашивалку кода потестить.
