#flash #actionscript-3 #compilation #flashdevelop #swc
#flash #actionscript-3 #Сборник #flashdevelop #swc
Вопрос:
Включены ли пользовательские функции, определенные на уровне пакета «по умолчанию» (он же верхний уровень), в скомпилированный SWC? Или они игнорируются?
//Compiled, or not to be compiled in a SWC - that is the question...
package {
public function topLevelMethod():void {
trace("Hello World");
}
}
У кого-нибудь возникали проблемы с этим?
Ответ №1:
Если вы компилируете свой SWC с помощью Flash Builder, вы можете управлять включенными классами в свойствах проекта > Путь к сборке библиотеки Flex> Классы.
Комментарии:
1. К сожалению, я использую FlashDevelop. Вы уверены, что то, на что вы указываете, также скомпилирует методы верхнего уровня? Я не говорю о классах, просто «голых» методах, которые можно использовать где угодно по всему миру.
2. Извините, я никогда не использовал FlashDevelop и не задумывался о его параметрах компиляции: (
3. Нет проблем. Думаю, я понял, что делаю что-то не так… Вскоре я опубликую обновление / самостоятельный ответ.
Ответ №2:
Ответ — да, они включены при компиляции в SWC. Независимо от того, находится ли метод на верхнем уровне или глубже на уровне пакета, он обрабатывается не иначе, чем класс (с точки зрения включения / исключения, следует провести по крайней мере некоторое исследование, чтобы выяснить, что они могут быть перечислены в файле -load-extern).
PS.: Да, я сам ответил на этот вопрос — я совершил глупую ошибку, поместив свой SWC в папку ‘bin’ вместо папки ‘libs’ (чтобы перезаписать старую), поэтому неудивительно, что я никогда не видел свои методы верхнего уровня!