Экспортированный SWC не сохраняет имена параметров автозаполнения функций - PullRequest
0 голосов
/ 30 ноября 2011

Я использую Flash CS5 и создал большую редко меняющуюся среду, которую я не хочу перекомпилировать каждый раз, когда использую ее в своих проектах.

Я должен что-то делать не так, потому чтоФункция «автозаполнения» не отображает имена параметров функций.

Например, у меня есть функция:

public class Hey {
    public function show(name:String, num:Number, data:Array):void {...}
}

Я экспортирую файл SWC, и когда яимпортируйте его в другой проект, затем автозаполнение для этой функции показывает:

show (arg0: String, arg1: Number, arg2: Array): void

Таким образом, вместо «name», «num» и «data» я получаю «arg0», «arg1» и «arg2».

Я скачал другие SWC-файлы, и автозаполнение получает имена правильно.

Что-то не так во время экспорта?

Ответы [ 3 ]

4 голосов
/ 14 декабря 2011

Мне никогда не удавалось получить SWC, сгенерированный с помощью Flash Pro IDE, для предоставления правильных имен параметров в подсказках кода.По какой-то причине Flash IDE либо не использует тот же компилятор, либо не использует те же параметры компилятора, что и инструментарий Flex SDK.

Вы можете создавать SWC-файлы, совместимые с подсказками кода, с помощью Flash Builder, создав FlexБиблиотечный проект.«Flex» часть «Flex Library» немного вводит в заблуждение.Вы можете создавать SWC-файлы только для AS3 с этим типом проекта.

Или, если вам не хочется тратить деньги на Flash Builder, вы всегда можете скачать бесплатный Flex SDK и использовать компилятор compc для генерацииSWC для вас.Это тот же набор инструментов, который Flash Builder использует для генерации SWC, так что вы получите ту же возможность подсказки кода.Синтаксис довольно прост, если вы привыкли к инструментам командной строки:

compc -source-path . -include-classes MyCustomClass -output=MyLibrary.swc

Надеюсь, кто-то может опубликовать лучший ответ и доказать, что я не прав, но я никогда не видел, чтобы Flash-сгенерированный SWC включалпараметры в коде-подсказке.

2 голосов
/ 26 апреля 2012

Я полагаю, вы компилируете с debug = false, но должны быть debug = true, чтобы хранить все необходимые данные в swc, включая имена аргументов.

Оптимизация библиотек означает удаление отладки и другого кода из библиотеки до развертывания.Для обычных библиотек, которые вы не используете в качестве RSL, вам не нужно оптимизировать.Это потому, что вы, вероятно, захотите отладить библиотеку во время разработки, поэтому вам понадобится код отладки внутри библиотеки.И, когда вы компилируете версию выпуска вашего приложения, компилятор исключит отладочную информацию, так как связывает классы из библиотеки.

http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7ad5.html

1 голос
/ 25 сентября 2015

Для меня самым простым способом было импортировать код в Flash Develop проект и установить плагин для экспорта SWC: http://sourceforge.net/projects/exportswc/

После установки Flash Develop перейдите на Инструменты » Установите программное обеспечение и установите AIR SDK + ASC 2.0 (Action Script Compiler 2.0) .

Более подробная информация здесь: http://www.flashdevelop.org/community/viewtopic.php?t=2987

...