![]() |
Создание метода для отладочной версии Flash Player
Здравствуйте! Например, нужно создать метод, который работал бы лишь при тестировании в среде разработки. Можно ли средствами AS3 отследить тестируется swf в некой среде разработки (Flash IDE, FB, FD...), или автономно? Тоесть нужно чтоб данный метод работал только при отладке swf, но не в случае "готового приложения" (будь то в браузере, или проекторе).
|
Класс flash.system.Capabilities, свойство isDebugger:Boolean
Цитата:
|
Можно помещать код в блоки вида
Код AS3:
|
Вот это круто! Спасибо всем за помощь!
PS: gloomyBrain, в Adobe Flash CS5 не работает, но в FD - как по маслу! Добавлено через 9 минут Только ни один из вариантов не работает в проекторе. Да мне в проекторе и не надо - этого хватит :) |
В FD эти константы времени компиляции определены, и он их сам будет задавать в зависимости от того, компилируете ли вы релиз или версию для отладчика. Флеш их сам не задает (или, мне кажется, что последние версии это делали, но я не уверен). Изначально это фича флексового СДК, но, по-моему, в последнем флеше тоже есть, поищите в настройках компиляции.
|
Такой фичи не нашел (по крайней мере в CS5). Но зато нашел возможность создания CONFIG констант в настройках публикации. В целом штука удобная. Но в моем случае не подходит, так как вручную надо задавать в publish settings моей константе: true или false в зависимости от цели: релиз/дебаг. Я пишу что-то на подобии движка или фреймворка для себя. Но хочется максимально "комфортабелизировать" :). Тоесть, если когда-нибудь другие люди будут мое "ноу-хау" использовать, то чтоб они не заморачивались в настройках публикации. И чтоб были уверены, что куски кода, предназначенные для теста не будут вкомпилированы в swf (независимо - это Flash IDE или Flex). Так что в моем случае, воспользуюсь Capabilities.
|
Цитата:
|
alatar, я так понял из прочтенной статьи: http://www.richnetapps.com/flash-cs4...nal-compilati/
Цитата:
1) при создании некой константы DEBUG:Boolean в коде, и проверке ее: Код AS3:
2) Также, если в настройках публикации добавить CONFIG::DEBUG - true и в коде Код AS3:
3) А если в настройках публикации добавить CONFIG::DEBUG - false и в коде Код AS3:
Это вывод из прочтенной инфы по ссылке выше. Я все правильно понял? |
Цитата:
|
А в FD тогда как? Если напишу:
Код AS3:
Интересно, интересно... Тогда выходит что с помощью Capabilities.isDebugger нельзя "выкинуть" тестовый код из swf. Трагедия, трагедия... |
Цитата:
Код AS3:
|
Даже так...
Но все равно, похоже моему коду не дано бить "универсальным". Обойдусь пока проверкой isDebugger. Пусть моя функция сидит себе в swf, она же в браузере не будет работать, а несколько байт кода думаю не многих уж очень спасет. Спасибо всем. |
HardCoder, вы определитесь что вы именно хотите.
Есть: 1. Вариант плеера: - Release - Debug 2. Вариант swf - Release - Debug Итого получается 4 комбинации: Release (player)-Release (swf) Release (player)-Debug (swf) - Сработает isDebugger Debug (player)-Release (swf) - Сработает CONFIG::DEBUG Debug (player)-Debug (swf) - Сработает isDebugger + CONFIG::DEBUG |
Скурил 2 сигареты и кажется понял.
Мне нужно чтоб моя функция: Release (player)-Release (swf) - не работала Release (player)-Debug (swf) - не работала Debug (player)-Release (swf) - не работала Debug (player)-Debug (swf) - работала Четвертый вариант должен реализовываться одинаково как во Flash CS5 так и в FlashDevelop 3. Из вариантов: isDebugger и CONFIG::DEBUG выбрал isDebugger. От CONFIG::DEBUG сознательно отказался, так как требует предварительной настройки в Flash CS5. Вывод: жаль что не могу использовать Debug (player)-Debug (swf) - CONFIG::DEBUG. Потому что в этом случае код будет не только "не работать" в Release (player), но он еще и не вкомпилится в Release (swf), чего не сможет сделать isDebugger. Вот и все... Офтоп: как убирать эти смайлики? |
Цитата:
|
| Часовой пояс GMT +4, время: 14:32. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.