Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Баги при большом проекте. (http://www.flasher.ru/forum/showthread.php?t=135167)

Psycho Tiger 17.01.2010 20:32

Баги при большом проекте.
 
Достаточно крупный проект, собираю через FlexSDK, кода порядка 21 тысячи строчек.
Ран-тайм либы не использую, точнее не знаю что это такое, быть может использую =)

Много разных классов, эвентов, интерфейсов, графику подключаю через swc через FD, все классы создаю через new, когда надо зануляю ссылки и отписываюсь от всех событий.

Какая проблема - часто лезут весёлые артефакты, например, пытаясь установить какой либо текст текстовому полю - исчезает текст начисто. Но если использовать replaceText - тогда всё хорошо. Более того, через 10-12 компиляций присваивая текст - работает на ура.
Сейчас например такой артефакт - обычный getChildByName работал на "ура", прикрутил к проекту silin`овский GC - в 10 фп работает отлично. В 9 фп getChildByName уже НЕ находит того самого мувиклипа. Дело в GC? Нет, убрал его совсем, даже из импорта - баг имеет место быть.

Сам вопрос - эти артефакты лезут из за моей криворукости, или же у фп при большом проекте это имеет место быть, и если так - как с этим бороться?
Исходники не выложу. Проект коммерческий и врятли кому то будет интересно копаться в полмегабайте кода, к тому же смысловой нагрузки без swc`шек он мало несёт, а их я распространять права не имею =\

VVall 17.01.2010 21:04

Не знаю насчёт конкретно вашего проекта, но вообще в любом большом проекте на любой платформе ближе к завершению часто вылезает довольно много сложных ошибок - таких, которые совсем непонятно откуда взялись и в какой момент начали проявляться. Как правило, это результат ошибок проектирования (не предусмотрено что-нибудь), ошибок тестирования (что-то не было проверено, потому что казалось, что совершенно точно будет работать) и просто глупых ошибок, сделанных по невнимательности (= вместо ==, =+ вместо += и т.п.), каким-либо образом прошедших незамеченными через начальные тесты.

Иногда можно найти ошибку, просто внимательно прочитав весь код. Не пробежав глазами ("я и так знаю, что и как тут работает"), а именно прочитав. В чужом коде при этом ошибки найти проще, чем в своём.

Psycho Tiger 17.01.2010 22:02

Это то понятно. Немного строчек кода прям из проекта:
Код AS3:

timerField.replaceText(0, 4, Math.floor(tl / 60) + ":" + sl); //в душе не ### откуда такие баги
                        //что равно не работает. А так работает. ппц...
                        //timerField.text = Math.floor(tl / 60) + ":" + sl;

Хотя, стоило пересобрать swc шку, в которой и лежали эти текстовые поля - заработало и через равно. А через компиляций 10-15, когда собирался высылать работу - вдруг опять, стоит применить равно - как полная ахинея - текстовое поле становится пустым и не хочет ничего писать внутрь себя.

Может я реально чего не понимаю - в комментированной строчке найдите ошибку и скажите, почему replaceText работает, а text= нет.

Добавлено через 8 минут
Есть кстати предположение такое, насчет фп, ни на чём не основанное - может быть девятка тупо "не выдерживает" нагрузок, что от неё требуют и сливается, а 10-ка посильнее будет, и держит удар?

mayakwd 18.01.2010 00:45

чувствую я, проблема ваша в sdk, друг мой. попробуйте собрать проект с другой версией (новее\старее)

dimarik 18.01.2010 01:02

В подходе к компилянии нетленки в байткод. Вероятно, поможет.

Psycho Tiger 18.01.2010 14:31

Цитата:

Сообщение от dimarik (Сообщение 879847)
В подходе к компилянии нетленки в байткод. Вероятно, поможет.

Последнее время я совсем не понимаю, где ты серьезно говоришь, а где шутишь.
Что есть "нетеленка" (хотя бы как она пишется по английски, чтобы загуглить), и как изменить этот подход?

Добавлено через 27 часов 0 минут
Попробовал 3.0.0 - полезли баги подобного плана. Попробовал самую свежую 4-ую - другие баги, тоже похожие. У всех сдк вышеописанные проблемы с текстовыми полями проявляются на разных полях. dimarik, про нетленку ты говорил серьезно? Можешь рассказать подробнее?

Diestro 19.01.2010 19:34

А перед каждой компиляцией делать Project -> Clean... делать не пробовали?

Psycho Tiger 19.01.2010 20:14

А как это сделать в FD?

Diestro 19.01.2010 22:54

Если речь про FD то ничего подсказать не могу. Во Flex Builder достаточно часто приходится делать Project -> Clean... чтобы быть уверенным что конечная флешка будет содержать все последние изменения.


Часовой пояс GMT +4, время: 16:20.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.