Руководство по actionscript. часть 2, стр. 141
Обратите внимание, что для одного определения переменной или метода нельзя указать несколько пространств имен. Каждое определение может включать только одно уточняющее пространство имен. Например, следующий код недопустим:
// Попытка указать два пространства имен для одного определения, fruit color var orange:String; // Вызывает следующую ошибку:
// Only one namespace attribute
// may be used per definition
// (В определении может указываться только
// одно пространство имен)
Атрибуты пространств имен, определенных пользователем, допустимы только на верхнем уровне описания класса. В предыдущем разделе было рассказано, как использовать собственные пространства имен в качестве атрибутов при определении методов и переменных. На самом деле это единственное место, где допустимо применять пространства имен, заданные пользователем, в качестве атрибута определения.
Пространства имен, определенные пользователем, можно применять в качестве атрибутов только на верхнем уровне описания класса.
Если вы попытаетесь использовать пространство имен, заданное пользователем, в качестве атрибута определения в любом другом месте, возникнет следующая ошибка:
A user-defined namespace attribute can only be used at the top level of a class definition.
По-русски она будет выглядеть следующим образом: Атрибут пространства имен, определенного пользователем, может быть использован только на верхнем уровне описания класса.
В частности, это значит, что вы не можете указать пространство имен, определенное пользователем, при определении класса, переменной на уровне пакета, функции на уровне пакета, локальной переменной или вложенной функции. Следующие определения являются недопустимыми:
// Недопустимое определение класса. Здесь не допускается использовать // пространство имен color! color class Picker { }
public function doSomething ( ):void { // Недопустимое определение локальной переменной. Здесь не допускается // использовать пространство имен color! color var tempSwatch;
}
package p {
// Недопустимое определение переменной на уровне пакета. Здесь // не допускается использовать пространство имен color! color var favorites:Array;
}
Напротив, внутренние пространства имен языка ActionScript могут быть использованы в качестве атрибутов определения в любом месте, где это допускается языком ActionScript. Например, как будет рассказано далее, в разд. «Пространства имен для модификаторов управления доступом», модификаторы управления доступом (publ i с, internal, protected и private) являются внутренними пространствами имен, а два из них (public и internal) могут быть использованы на уровне пакета.