Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Посоветуйте аналог FlashDevelop для Mac (http://www.flasher.ru/forum/showthread.php?t=142199)

mikhailk 15.07.2010 19:52

Цитата:

Сообщение от KirAmp (Сообщение 922542)
я один пишу что ли код во флеше? Оо
В чем приемущества этого софта?

Не один. ))

Сейчас рассматриваю использование FlashDevelop как более эффективного инструмента разработки, но так пока и не понял восторгов по его поводу. Если сравнивать с тем же NetBeans для java, то ни синтаксического анализа, ни контроля типизации... Да и компилятор что-то мне показался медленнее, чем во FlashIDE.

Если заниматься flex-разработкой, то FlashIDE, конечно, будет путаться под ногами, поскольку он там не нужен по определению.

В случае разработки flash-приложения выгода мне не кажется столь очевидной. Сейчас, например, у меня в основном файле fla сидят элементы интерфейса приложения, а графика, мувики и саунд - в подключаемых библиотеках. Они редко меняются и вполне могут жить в виде скомпилированных swf. А вот элементы интерфейса по мере разработки приложения постоянно меняются/пополняются. Получается, что, если ты сидишь под FlashDevelop, то каждый раз открываешь FlashIDE, вносишь изменения в библиотеку, заново компилируешь в swf, возвращаешься в FlashDevelop, билдишь проект, запускаешь, смотришь, как получилось, заново идешь в FlashIDE... Более муторно, имхо, чем делать то же самое внутри FlashIDE.

Хотя, конечно, еще от технологии производства зависит. Если программист получает все библиотеки с объектами сразу в готовом виде, то ему FLashIDE действительно не нужен.

wvxvw 16.07.2010 00:14

>> Да и компилятор что-то мне показался медленнее, чем во FlashIDE.
Креститься надо, если кажется, в ФД нет компилятора.

Что такое контроль типизации? И как это нет синтаксического анализа? А как по вашему автокомплит / аутлайн работает?

Ваш подход к разработке просто противопоказан, никто так не делает. AS код вообще не компилируют во Флеше - это долго и непрактично.

Котяра 16.07.2010 00:23

мне кажется михаилко имел в виду ас2 проекты с mtasc компилятором, где код компилится методом инъекций. я не прав?

mikhailk 16.07.2010 00:36

:) :) :)
Спорить с модератором как-то и не очень удобно.

Под контролем типизации и синтаксическим анализатором я имел встроенный в IDE функционал, который производит проверку вводимого кода программера "на лету". Собственно, Вы всегда можете открыть NetBeans и посмотреть, как это выглядит.

Автокомплит - это немного другое. Это, на мой взгляд, скорее из разряда темплейтов, но и тут я спорить не буду.

Относительно долгого и непрактичного компилирования кода во flashIDE, проект около 10 тыс. строк кода компилируется у меня в пределах 3-х секунд. В чем долгота и непрактичность, понятно не совсем. Но очевидно, что существуют проекты, которые так компилировать бессмысленно. Собственно, поэтому я рассматриваю переход на FD как на более технологичную среду разработки.

Она ведь более технологичная? :)

Добавлено через 5 минут
Цитата:

Сообщение от Котяра (Сообщение 922647)
мне кажется михаилко имел в виду ас2 проекты с mtasc компилятором, где код компилится методом инъекций. я не прав?

Да нет ))
я вчера поставил себе FD, создал в нем проект AS3 с кодом в 25 строчек и нажал кнопку Build Project.

Вот код (вроде из какого-то тутора):

Код AS3:

package 
{
  import flash.display.Sprite;
  import flash.events.Event;
  import flash.text.TextField;
  import flash.text.TextFieldAutoSize;
  import flash.text.TextFormat;
  //
  public class Main extends Sprite
  {
    public function Main():void
    {
      if (stage) init();
      else addEventListener(Event.ADDED_TO_STAGE, init);
    }
    //
    private function init(e:Event = null):void
    {
      var txt:TextField;
      //
      removeEventListener(Event.ADDED_TO_STAGE, init);
      //
      txt = new TextField();
      txt.x = 10;
      txt.y = 10;
      txt.autoSize = TextFieldAutoSize.LEFT;
      txt.defaultTextFormat = new TextFormat("Tahoma", 12, 0);
      txt.text = "My First Apllication";
      addChild(txt);
    }
  }
 
}

Время построения билда около 3-х секунд.
Впрочем, возможно, я какие-то параметры не выставил.
Вот вывод:

Код:

Running process: C:\Program Files\FlashDevelop\Tools\fdbuild\fdbuild.exe "C:\Users\Михаил\Documents\test1\test1.as3proj" -ipc f93bbabb-025f-4d43-80b3-70f4b619e96d -compiler "C:\flex\flex_sdk_3.5" -library "C:\Program Files\FlashDevelop\Library"
Using the Flex Compiler Shell.
Building test1
mxmlc -load-config+=obj\test1Config.xml -debug=true -incremental=true -benchmark=false -static-link-runtime-shared-libraries=true -o obj\test1634147402157060000
INITIALIZING: Adobe Flex Compiler SHell (fcsh)
Starting new compile.
Loading configuration file C:\flex\flex_sdk_3.5\frameworks\flex-config.xml
Loading configuration file C:\Users\Михаил\Documents\test1\obj\test1Config.xml
obj\test1634147402157060000 (995 bytes)
(fcsh)Build succeeded
Done(0)


Котяра 16.07.2010 01:31

3 секунды - не показатель. Это очень мало.Сравнение чисто субъективно будет. У меня были проекты которые флэш компилил по 15 минут (правда там было много графики) После разделения на swc блоки+ чистый код - компил занимал максимум секунд 5-10. графика компилилась во флэш почти те-же 15 минут в совокупности, но была поделена где-то на 10-20 частей. Т.к. чаще всего приходится компилить код а не графику, то выгода очевидна.
а вот что вы имели в виду под "синтаксическим анализатором" я так и не понял..
В фд нет проверки ошибок на лету, как в ФБ, но из-за этого он шустрее работает.
А разве во флэш это есть?

wvxvw 16.07.2010 03:12

Как это в ФД нет проверки ошибок? Вы чего? Конечно есть. Загляните в аутпут панель / посмотрите на красную волнистую линию возле невалидного кода - откуда это по вашему берется? Просто ГУИ другой, не иконка с восклицательным знаком, а выделение стилем.

По поводу скорости - флексовый компилятор умеет кешировать результаты предыдущих компиляций, флешевый компилятор этого делать в принципе не умеет. Но к ФД это мало отношения имеет, компилятор не его, а флексовый, ФД будет компилировать тем, что подключено.

Автокомплит и темплейты - вообще от разных стенок гвозди. В том смысле, что вообще никак не связаны. темплейты это по сути продвинутый копипейст, а для автокомплита нужно анализировать документ, структуру проекта и т.д. Т.е. во флеше (до ЦС5) автокомплита по сути вообще не было, ну или очень в зачаточной стадии. В этом отношении ФД и Флеш как бы вообще небо и земля.

Котяра 16.07.2010 08:32

Цитата:

Как это в ФД нет проверки ошибок? Вы чего? Конечно есть. Загляните в аутпут панель / посмотрите на красную волнистую линию возле невалидного кода - откуда это по вашему берется? Просто ГУИ другой, не иконка с восклицательным знаком, а выделение стилем.
сорри - совсем зарапортовался с этим ас2 - забыл как нормальный код выглядит) В ас2 проектах - ошибки показываются только после компиляции.

mikhailk 16.07.2010 11:39

Цитата:

Сообщение от Котяра (Сообщение 922662)
3 секунды - не показатель. Это очень мало.Сравнение чисто субъективно будет. У меня были проекты которые флэш компилил по 15 минут (правда там было много графики) После разделения на swc блоки+ чистый код - компил занимал максимум секунд 5-10. графика компилилась во флэш почти те-же 15 минут в совокупности, но была поделена где-то на 10-20 частей. Т.к. чаще всего приходится компилить код а не графику, то выгода очевидна.
а вот что вы имели в виду под "синтаксическим анализатором" я так и не понял..
В фд нет проверки ошибок на лету, как в ФБ, но из-за этого он шустрее работает.
А разве во флэш это есть?

У меня вся графика вынесена в отдельные swf-файлы, которые подкачиваются лоадером после запуска приложения. Поэтому они не участвуют в компиляции приложения. Сами они, конечно, могут компилироваться и 15 минут и полчаса.

Под синтаксическим анализом я имел вот что.

Допустим, программист пишет конструкцию

Код AS3:

   resultParameter = calculator.calculateResultParameter(inputParameter);

FlashIDE не проверяет ничего. :) Нулевой уровень контроля валидности кода. Пиши, что хочешь, все ошибки всплывут на этапе компиляции.

NetBeans, на который я тут ссылался, проверит следующее:
- определены ли ранее в коде resultParameter, calculator, inputParameter
- имеет ли calculator публичный метод calculateResultParameter
- совпадает ли тип переменной inputParameter с типом параметра метода calculateResultParameter
- совпадает ли тип возвращаемого методом calculateResultParameter значения с типом resultParameter

все это без какой-либо компиляции проекта.

Так вот, возможно, FlashDevelop это тоже делает, просто я пока не понял как.

Добавлено через 2 минуты
Цитата:

Сообщение от wvxvw (Сообщение 922672)
Как это в ФД нет проверки ошибок? Вы чего? Конечно есть. Загляните в аутпут панель / посмотрите на красную волнистую линию возле невалидного кода - откуда это по вашему берется? Просто ГУИ другой, не иконка с восклицательным знаком, а выделение стилем.

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

wvxvw 16.07.2010 13:51

Фд использует сервис из СДК для проверки ошибок, этот сервис отчасти использует ту же базу кода, что и флексовый компилятор. Флексовый компилятор не умеет проверять, что переменные используются до инициализации. Т.е. это формально не ошибка компиляции. Компилятор HaXe например, умеет это делать, поэтому код на хексе с неинициализироваными переменными не скомпилируется.
Есть такое пожелание улучшения в JIRA адобовской по этому поводу, но пока этого нет в компиляторе, то, формально, код использующий неинициализированые переменные считается валидным и должен компилироваться.

Александр 16.07.2010 16:26

А мне нравиться Эклипс!


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

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