Ошибка выдается, потому что вы пытаетесь применить пространство имен ко всему классу, но определяемые пользователем пространства имен ограничены для использования с переменными и функциями («верхний уровень определения класса» означает «элементы в пределах *» 1002 * класс "). Если вы собираетесь сказать «Но это глупо!» Я могу только согласиться с вами - было бы гораздо разумнее иметь пространства имен для классов и интерфейсов. Еще: таковы правила. :(
Я также считаю, что ваше определение пространства имен не правильно. Если вы собираетесь использовать пространство имен для более чем одного класса, оно должно быть объявлено в отдельном файле. Что-то вроде:
package my_package {
public namespace myproject;
}
в /my_package/myproject.as
и
package my_package {
internal namespace myproject_internal;
}
в /my_package/myproject_internal.as
.
Обратите внимание, что internal
в этом случае определяет видимость для самого пространства имен , а не для функций и переменных, с которыми вы его используете - они будут видны в пользовательском пространстве имен (дух!). Если вы собираетесь использовать пространство имен internal
, ваш реализующий класс должен находиться в одном и том же пакете, иначе это пространство имен будет недоступно.
См. Сообщение в блоге Гранта Скиннера для получения полной информации о пространствах имен.
Наконец, но не в последнюю очередь, я бы настоятельно рекомендовал не использовать «parent» в качестве имени пакета - кроме того, что это очень неоднозначное имя, это может легко привести к конфликтам имен при использовании в сочетании с экранными объектами, где parent
относится к фактическому родительскому объекту.