Компиляция пакета по умолчанию / функций верхнего уровня в SWC

#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’ (чтобы перезаписать старую), поэтому неудивительно, что я никогда не видел свои методы верхнего уровня!