Подключение ADOBE ASC 2.0 компилятора к FlashDevelop. Русская инструкция.
Признаюсь сразу, подобная информация уже есть(оригинал), но во-первых, она на французском, а во-вторых, я попытался максимум минимизировать информацию о подключении компилятора.
И так, если вы до сих пор не знаете, что такое ASC 2.0, советую почитать Introducing ASC 2.0 на bytearray.org, а также http://helpx.adobe.com/flash-builder...atibility.html от Adobe.
Надеюсь, что FlashDevelop у вас установлен.
Начали:
- Скачиваем AIR 3.4 SDK with ActionScript Compiler 2.0 и распаковываем архив в FlashDevelop/Tools/
- Из FlashDevelop/Tools/flexsdk/ копируем файл flex-sdk-description.xml в FlashDevelop/Tools/air3-4_p3_sdk_asc2_win_100512
- Из FlashDevelop/Tools/flexsdk/lib/ копируем fcsh.jar в FlashDevelop/Tools/air3-4_p3_sdk_asc2_win_100512/lib/
- Заходим в FlashDevelop/Tools/fdbuild/ и переименовываем fdbuild.exe в fdbuild.exe$
- Скачиваем fdbuild.zip, в архиве пропатченный fdbuild.exe, который необходимо скопировать в FlashDevelop/Tools/fdbuild/
- Открываем FlashDevelop, создаем новый AS3 проект, и первым делом, идем в Project -> Properties...
- Переходим во вкладку SDK и устанавливаем Custom SDK, выбираем FlashDevelop/Tools/air3-4_p3_sdk_asc2_win_100512
От себя:
Я подключил этот компилятор к проекту, над которым работаю довольно долгое время. После чего, пришлось потратить примерно час на отладку кода, чтобы запуститься.
Всем удачи, надеюсь материал будет полезен.
UPD:
Не смотря на то, что в начале я указал ссылку на информацию по этому компилятору, людская лень заставляем меня описать его возможности.
Некоторые их них:
- Компиляция нескольких файлов сразу, что ускоряет общее время компиляции
- Оптимизации итогового байт-кода(например, путем удаления мертвого кода)
- Поддержка алгоритма сжатия LZMA
- Добавлены инструменты командной строки fontswf, optimizer, swfdump, swcdepends
- Добавлен метатег [Inline]
- Поддержка SWC библиотек скомпилированных Alchemy
- Этот компилятор более строг к оформлению\написанию кода
UPD2: метатег [Inline]
Для его работоспособности, необходимо указать флаг -inline в опциях компилятора для FD -> Properties -> Compiler Options -> Additional Compiler Options.
Также вы должны не забывать о том, что:
- Работает только для финализированных, статичных или для функций в области видимости файла или пакета;
- Функция не должна содержать активаций, try, with и анонимных методов;
- Кол-во выражений функции не может превышать 50.
Некоторые, наверное, задаются вопросом - "зачем вообще этот [Inline] нужен?"
Этот метатег указывает компилятору, что код(тело метода shuffle в нашем случае) должен быть помещен в место вызова функции, что ускоряет время его выполнения.
Пример использования я покажу на следующем коде:
package { import flash.display.Sprite; /** * @author SlavaRa */ public class Main extends Sprite { //constructor, addedToStageHandler, this.runInlineTest() private function runInlineTest():void { this.testMethod1(); this.testMethod2(); } private function testMethod1():void { var array:Array = [1, 5, 9, 7, 5, 6]; ArrayUtils.shuffle(array); } private function testMethod2():void { var array:Array = [10, 55, 88, -2, 36, 99]; ArrayUtils.shuffle(array); } } } /** * @author udaaff */ class ArrayUtils { public static function shuffle(array:Array):void { var t:*; var r:int; var i:int = array.length; while (i) { r = Math.floor(Math.random() * i--); t = array[i]; array[i] = array[r]; array[r] = t; } } }
Ниже приведены скриншоты декомпилированного кода(в академических целях, не более).
- "по старинке":
- и с использованием данного метатега
Всего комментариев 43
Комментарии
11.11.2012 20:50 | |
Цитата:
максимум минимизировать
Спасибо за инструкцию. В работе компилятора какие-либо баги/особенности/нюансы замечены? |
11.11.2012 21:08 | |
Самое главное прочитать спецификацию компилятора, это очень важно.
Да, нюансы замечены: Код:
Warning: 'static-link-runtime-shared-libraries' is not fully supported. один из базовых классов теперь выглядит так import slavara.as3.core.events.data.DataBaseEvent; /** * @author SlavaRa */ public class WorldEvent extends slavara.as3.core.events.data.DataBaseEvent { выдавала Error, мне некогда было разбираться почему, я просто быстро нашел решение. так же были проблемы с классами сгенерированными Code Orchestra, а именно с метатегом Event[], потому что у них внутри скобок использовались константы. больше у меня проблем не было, но я весь код, кроме базовых классов, заранее готовил под него |
|
Обновил(-а) СлаваRa 12.11.2012 в 02:59
|
11.11.2012 22:09 | |
За inline отдельное спасибо =)
|
11.11.2012 23:15 | |
Что этот компилятор дает,зачем он вообще нужен? )
|
11.11.2012 23:48 | |
В чем бонус?
|
11.11.2012 23:50 | |
Ну и на всяк случай - я никогда не ставлю сдк вместе с девелопом, только отдельно качаю в отдельную папочку - в таком случае надо это всё не в тулс кидать а в папку сдк?
|
12.11.2012 00:27 | |
Цитата:
Что этот компилятор дает,зачем он вообще нужен? )
Код:
extends slavara.as3.core.events.data.DataBaseEvent |
12.11.2012 01:16 | |
http://www.bytearray.org/?p=4789
Тут написаны плюсы. |
12.11.2012 02:53 | |
Нипанятна
|
12.11.2012 02:58 | |
Я же специально для вас обновил пост, и написал некоторые преимущества ASC 2.0, если вам даже так не понятно, то я пасс.
|
12.11.2012 04:03 | |
Все понятно, чувак тупит наверно
|
12.11.2012 13:00 | |
Надо попробовать
|
12.11.2012 22:32 | |
Цитата:
Не смотря на то, что в начале я указал ссылку на информацию по этому компилятору, людская лень заставляем меня описать его возможности.
Некоторые их них: Цитата:
сейчас редактировать пост не буду, а то опять пропадет
|
|
Обновил(-а) iNils 13.11.2012 в 03:44
|
12.11.2012 22:43 | |
ок, iNils, спасибо, завтра дополню с работы)
|
14.11.2012 02:09 | |
А в компиляторе, который идёт с FlexSDK нет inline? Тогда у этого преимущества большие, он будет заменяет вызов небольших функции, кодом самой функции, ещё плюс такие жёсткие требования к коду - готовый продукт будет работать быстрее. Тесты какие-нибудь провести-бы...
|
|
Обновил(-а) Sintesis 14.11.2012 в 03:48
|
14.11.2012 03:30 | |
Нет, во FlexSDK такого функционала нет.
Материал о работе с этим компилятором в процессе написания, я думаю что на след. неделе выложу. |
14.11.2012 12:44 | |
Во FlexSDK этот функционал появится когда допилят Falcon.
|
16.11.2013 15:03 | |
Спасибо Большое за статью, не где не мог найти подобного.
|
15.12.2013 16:52 | |
В последней версии FD при установке ставил галочки на все SDK и на ASC 2.0 и если я правильно понимаю,
то скачивать и заменять файлы уже не нужно, но как тогда подключить ASC 2.0? И ещё у меня нет папки air3-4_p3_sdk_asc2_win_100512 , да и air вообще. Подумал, что эта папка в скаченном SDK, скачал от сюда http://www.adobe.com/devnet/air/air-sdk-download.html и и такой папки не оказалось. |
|
Обновил(-а) Akopalipsis 15.12.2013 в 17:39
|
15.12.2013 18:04 | |
Akopalipsis, вы некромант? Зачем поднимаете мертвые темы?
В FD 4.5 уже скачивается AIR SDK с ASC 2.0 |
15.12.2013 18:45 | |
Вот в 4.5+ ASC2.0, который официально AIR SDK, который качает FD при установке. |
15.12.2013 20:43 | |
Это компилятор(AIR SDK), а не платформа рантайма.
Так же можно поставить последний Apache flex sdk, который тоже поддерживает [Inline]. FlashDevelop 4.5.2 не умеет ставить его сам. |
15.12.2013 21:13 | |
Цитата:
Так же можно поставить последний Apache flex sdk
|
15.12.2013 21:27 | |
Цитата:
Так же можно поставить последний Apache flex sdk, который тоже поддерживает [Inline].
|
15.12.2013 21:52 | |
Цитата:
То есть, его мало скачать и указать путь в настройках?
Цитата:
отказ разкомпилировать swf
|
15.12.2013 22:05 | |
Цитата:
Нет. Этого достаточно. Читайте внимательнее.
как и с обычной, разархивировал в папку, в FD указал путь и ещё как показал СлаваRa на скриншоте, выставил в настройках и ещё плеер 11,9 версию выставил. Ошибка при попытке, что то скомпилировать - Exception: Could not locate lib\fcsh.jar in Flex SDK. Цитата:
Что?
|
15.12.2013 22:18 | |
Цитата:
Exception: Could not locate lib\fcsh.jar in Flex SDK.
|
15.12.2013 22:36 | |
MikroAcse Вы можете думать, что я глупый или тороплюсь, но я прочел ЭТУ статью ещё раз и не понял о чём Вы...
|
15.12.2013 22:42 | |
Если Вы о -
Цитата:
Из FlashDevelop/Tools/flexsdk/lib/ копируем fcsh.jar в FlashDevelop/Tools/air3-4_p3_sdk_asc2_win_100512/lib/
|
15.12.2013 23:08 | |
Цитата:
Вы можете думать, что я глупый или тороплюсь
|
16.12.2013 11:29 | |
То есть, если не использовать флекс – лучшей опцией является ASC2 ?
|
16.12.2013 11:58 | |
Я его юзаю на своих проектах, не жалуюсь.
Скрин выше с рабочего редактора, как видишь там есть все. |
16.12.2013 14:49 | |
версия FD какая?
|
16.12.2013 16:22 | |
Цитата:
версия FD какая?
|
Последние записи от СлаваRa
- Тестирование кода. Разворачиваем проект с помощью Gradle. (01.11.2015)
- Тестирование кода. Разворачиваем проект с помощью Apache Ant. (01.11.2015)
- [FlashDevelop] Postfix Code Completion (07.09.2015)
- из Flash на HaXe, из HaXe во Flash при участии NME (13.04.2013)
- Подключение ADOBE ASC 2.0 компилятора к FlashDevelop. Русская инструкция. (11.11.2012)