Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.09.2015, 23:30
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 1  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
По умолчанию Компиляция недостижимого кода

Вопрос по первичной обработке кода компилятором. Достаточно ли умен компилятор (Flex 4.6.0), что-бы не включать недостижимые инструкций в конечный проект?
Допустим, у меня есть такая переменная:
Код AS3:
public static const DEBUG_MODE:Boolean = Boolean( 0 ); // 0 Тут потому, что его проще заменить на 1 и наоборот, чем писать true false.
И такие инструкции:
Код AS3:
if(DEBUG_MODE){
    // Тяжёлый код 1
}
if(DEBUG_MODE && <ещё какое то выражение>){
    // Тяжёлый код 2
}
Будет ли полностью отсечено первое условие в рантайме?
Будет ли полностью отсечено второе условие в рантайме?
Никто не заморачивался по поводу такой фигни?

Под полностью, я имею ввиду, чтобы его вообще не было в конечном swf. К сожалению, декомпилятора нету, что бы проверить.
__________________
Дети не должны знать о своих родителях

Старый 26.09.2015, 00:27
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 2  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
может закоментить и посмотреть на объём swf?

Старый 26.09.2015, 01:24
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 3  
Ответить с цитированием
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Tails, может лучше использовать условную компиляцию?

Старый 26.09.2015, 01:33
ALeXVoz вне форума Посмотреть профиль Отправить личное сообщение для ALeXVoz Посетить домашнюю страницу ALeXVoz Найти все сообщения от ALeXVoz
  № 4  
Ответить с цитированием
ALeXVoz
 
Аватар для ALeXVoz

Регистрация: Nov 2008
Адрес: Ukraine, Kyiv
Сообщений: 94
Отправить сообщение для ALeXVoz с помощью Skype™
Только закомментировнный код не будет компилироваться.

Старый 26.09.2015, 02:08
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 5  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Спасибо.
Тут на форуме, в блогах это когда то уже обсуждали.
__________________
Дети не должны знать о своих родителях

Старый 26.09.2015, 08:25
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 6  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Собственно, а какая тебе разница будет он вкомпилирован или нет? Если он не выполняется, то проблем нет

Старый 26.09.2015, 09:12
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 7  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Да вообщем то проблем нет, просто из любопытства вот поинтересовался. Ответы на мои вопросы такие, что компилятор ни черта не делает. Как напишешь, так и будет в конечном swf.
Даже такие индуские инструкций как:
Код AS3:
if(false){
    // Очень много кода...
}
Судя по статье и комментариям в блоге iNils.
__________________
Дети не должны знать о своих родителях

Старый 26.09.2015, 09:21
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 8  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Ну, это не такая уж индуская конструкция. Такая конструкция даже в джаве, с ее гораздо более строгим компилятором, считается нормой
Индусской я бы назвал вот эту:
Код AS3:
private function someFunc():void {
     // какой-то код
     return;
     // еще какой-то код. Который в джаве не даст скомпилировать проект, 
     // кинув unreachable code эксепшен, а в ас3 прокатит без проблем
}

Старый 26.09.2015, 09:40
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 9  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Согласен
__________________
Дети не должны знать о своих родителях

Старый 26.09.2015, 10:54
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 10  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Так есть же более простая встроенная возможность с помощью выпадающего списка на верхней панели FD:
http://www.flashdevelop.org/wikidocs...al_Compilation

Код AS3:
CONFIG::debug
private function someFunction() {
  trace("debug version");
}
 
CONFIG::release
private function someFunction() {
  trace("release version");
}
Код AS3:
private function someFunction() {
  CONFIG::debug {
    trace("This code is NOT compiled in Release configuration");
    return;
  }
  trace("This code never executed in Debug configuration - and apparently not even compiled");
}
Код AS3:
public const COMPANY:String = CONFIG::companyName;
 
private function someFunction() {
  if (CONFIG::debug == true) {
    trace("This code only executed in Debug configuration (but still compiled).");
  }
  trace("Built: " + CONFIG::timeStamp);
}
__________________
There is no thing in this world that is not simple.

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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