Главная / Action Script 3

Это список ошибок, генерируемых компилятором при обработке неверного кода. Определенная часть этих ошибок регистрируется только при работе в строгом режиме. В строгом режиме в силу вступают три дополнительных ограничения:


 КодСообщениеОписание
 1000Неопределенная ссылка на %s. Возможно, ссылка дана на более, чем один элемент. В следующем примере используются пространства имен rss и xml, каждое их которых задает разное значение для функции hello(). Инструкция trace(hello()) возвращает данную ошибку, так как она не может определить используемое пространство имен.
private namespace rss;
private namespace xml;
    
public function ErrorExamples() {
  	use namespace rss;
   	use namespace xml;
	trace(hello());
}
    
rss function hello():String {
      	return "hola";
    }
    
    xml function hello():String {
        return "foo";
    }

Исправьте ссылку так, чтобы она ссылалась на определенный элемент. В следующем примере для указания на используемое пространство имен используется форма namespace::function:

public function ErrorExamples() {
    
    trace(rss::hello());
    trace(xml::hello());
}
 1003Использование спецификаторов доступа с атрибутами пространств имен запрещено. В определении нельзя одновременно использовать спецификатор доступа (например, private или public) и атрибут пространства имен.
 1004Пространство имен не найдено или не является константой периода компиляции. Неизвестное пространство имен или оно является выражением, значения которого во время выполнения отличались. Проверьте правильность написания пространства имен и правильность импорта его определения.
 1006Выражение super может использоваться только в методах экземпляров классов. 
 1007Инструкция super может использоваться только в конструкторах экземпляров классов. Инструкцию super нельзя использовать в статических членах классов. Инструкцию super можно использовать только в экземплярах классов.
 1008Неверный атрибут. 
 1010Атрибут override может использоваться только в определениях свойств классов. Ключевое слово override нельзя использовать в блоке функции.
 1011Атрибут virtual может использоваться только в определениях свойств классов. Атрибут virtual нельзя использовать для объявления свойства, которое не принадлежит классу (например, при объявлении переменной в блоке функции).
 1012Атрибут static может использоваться только в определениях внутри класса. 
 1013Атрибут private может использоваться только в определениях свойств классов. 
 1014Атрибут intrinsic больше не поддерживается. ActionScript 3.0 не поддерживает ключевое слово intrinsic .
 1016final является базовым классом. Операция расширения данного суперкласса не может быть выполнена, так как этот суперкласс помечен как final.
 1017Определение базового класса %s не было найдено. 
 1018Повторяющееся определение класса: %s. 
 1020Метод, помеченный как override, имеет приоритет над другими методами. 
 1021Повторяющееся определение функции. Нельзя объявлять больше одной функции с использованием одного и того же имени идентификатора в пределах одной и той же области видимости.
 1022Не удается заменить средство доступа final. 
 1023Недопустимое замещение. Функция, отмеченная как override, должна четко соответствовать параметру и возвращать объявление типа функции, которую она замещает. Она должна обладать тем же количеством однотипных параметров и объявлять одно и то же возвращаемое значение. Если же какие-либо из параметров являются дополнительными, то соответствие все равно должно соблюдаться. Обе функции должны использовать один и тот же спецификатор доступа (public, private и так далее), а также атрибут пространства имен.
 1024Замена функции, которая не предназначена для замены. Если метод класса замещает метод в базовом классе, то следует объявить этот метод явным образом с использованием атрибута override, например:
public override function foo():void{};
 1025Не удается переопределить метод final. Операция расширения данного метода не может быть выполнена, так как в базовом классе он помечен как final.
 1026Функции-конструкторы должны быть методами экземпляров. 
 1027Функции не могут одновременно быть static и override. 
 1028Функции не могут одновременно быть static и virtual. 
 1029Функции не могут одновременно быть final и virtual. 
 1030Необходимо указать имя массива аргументов переменных. Определение параметра ...(rest) указывает на то, что все значения, стоящие после ...(rest), включаются в массив. Необходимо указать имя данного массива, как это показано в примере ниже: function foo(x,...(rest)).
 1033Виртуальные переменные не поддерживаются. 
 1034Переменные не могут быть собственными. 
 1035Переменные не могут одновременно быть final и virtual. 
 1037Пакеты не могут быть вложенными. 
 1038Цель инструкции break не найдена. 
 1039Цель инструкции continue не найдена. 
 1040Повторяющееся определение метки. 
 1041Атрибуты не являются вызываемыми. 
 1042Ключевое слово this не может использоваться в статических методах. Оно может использоваться только в методах экземпляров, закрытиях функций и глобальном коде. Ключевое слово this нельзя использовать в статическом члене, так как для оно будет находиться вне контекста.
 1043Неопределенное пространство имен. 
 1044Метод интерфейса %s в пространстве имен %s не реализован классом %s. 
 1045Интерфейс %s не найден. 
 1046Тип не найден или не является константой периода компиляции: %s. Класс, использованный в качестве объявления типа, неизвестен или является выражением, значения которого во время выполнения отличались. Убедитесь в том, что вы импортируете верный класс, и что место расположения его пакета не изменилось. Также проверьте правильность определения пакета, содержащего код (а не импортированный класс). Например, проверьте, не использовали ли вы синтаксис пакета ActionScript 2.0 вместо ActionScript 3.0.

Это также может иметь место при обращении к классу, который не определен в используемом пространстве имен или не объявлен как public:

public class Foo{}

Если используется Flex™ Builder™ 2 и класс содержится в библиотеке, то в проекте необходимо указать путь к данному классу.

 1047Инициализатор параметра неизвестен или не является константой периода компиляции. Значение, использованное в качестве значения по умолчанию для этого параметра, не определено или во время выполнения принимало другое значение. Проверьте правильность написания инициализатора, а также убедитесь, не является ли значение инициализатора выражением, результат вычисления которого во время выполнения мог отличаться.
 1048Невозможно использовать метод в качестве конструктора. Невозможно создать экземпляр метода класса. В выражениях new можно использовать только глобальные функции.
class D { function xx() { return 22; } }
var d:D = new D();
var x = new d.xx(); // ошибка, метод нельзя использовать в качестве конструктора
function yy() { this.a = 22; }
var z = new yy(); // ошибки нет, глобальные функции можно использовать в качестве конструкторов.
 1049Недопустимое назначение переменной const. 
 1050Невозможно присвоить значению, не имеющему ссылку. 
 1051Возвращаемое значение должно быть неопределенным. Попытка использования инструкции return в пределах метода, возвращаемым типом которого является void.
 1052Инициализатор константы неизвестен или не является константой периода компиляции. Значение, использованное для инициализации константы, не определено или во время выполнения принимало другие значения. Проверьте правильность написания инициализатора, а также убедитесь, не является ли значение инициализатора выражением, результат вычисления которого во время выполнения мог отличаться.
 1053Типы средств доступа должны совпадать. 
 1054Тип возвращаемого значения определения установщика должен быть не определен или иметь значение void. Невозможно задать возвращаемое значение для функции установщика. Например, в нижеследующем примере содержится ошибка:
public function set gamma(g:Number):Number;

В следующем примере ошибки не содержится:

public function set gamma(g:Number):void;
 1058Свойство только для записи. 
 1059Свойство только для чтения. Это свойство определено с помощью функции получателя, что позволяет получить значение этого свойства. Для данного свойства определенная функция установщика отсутствует, поэтому оно является свойством только для чтения.

В третьей строке следующего примера содержится ошибка, так как для xx функция установщика не определена:

class D { function get xx() { return 22; } }
var d:D = new D();
d.xx = 44; // ошибка, свойство только для чтения
 1061Вызов вероятно неопределенного метода %s посредством ссылки со статическим типом %s. Вызов неопределенного метода.
 1063Не удалось открыть файл: %s. 
 1064Недопустимые метаданные. Метаданные не распознаны.
 1065Атрибуты метаданных не могут содержать более одного элемента. 
 1067Неявное приведение значения типа %s к несвязанному типу %s. Попытка преобразования объекта в тип, преобразование объекта в который не поддерживается. Это происходит если класс, в который производится преобразование, не находится в цепочке наследования преобразовываемого объекта. Эта ошибка возникает, когда компьютер работает в строгом режиме.
 1068Не удалось открыть включенный файл: %s. 
 1069Синтаксическая ошибка: ожидается определение или директива. Проверьте синтаксис в текущей строке.
 1071Синтаксическая ошибка: ожидалось ключевое слово определения (например, функция) после атрибута %s, а не %s. Эта ошибка возникает, когда программист забывает включить в объявление ключевое слово var или function.
public int z;// должно быть public var z:int;
Эта ошибка возникает, когда компилятор обнаруживает неожиданный символ. Например, такое использование функции trace() является неверным из-за отсутствующих кавычек (пример правильного синтаксиса: trace("hello")):
trace "hello"
 1072Синтаксическая ошибка: ожидание xml до namespace. Примером правильного синтаксиса инструкции является: default xml namespace = ns. Отсутствует ключевое слово xml (обратите внимание на регистр) или использовано неверное ключевое слово. Дополнительную информацию см. в директиве default xml namespace .
 1073Синтаксическая ошибка: ожидание предложения catch или finally. 
 1075Синтаксическая ошибка: использование ключевого слова each запрещено без оператора in. 
 1076Синтаксическая ошибка: ожидание открывающей скобки перед идентификатором. 
 1077Ожидание CaseLabel. В этом месте блока переключателя компилятор ожидал инструкцию case. В следующем блоке-переключателе присутствует неверный вызов print перед первой инструкцией case:
switch(x)
{
trace(2);
case 0:  trace(0); 
break
}
 1078Метка должна представлять собой простой идентификатор. 
 1079Выражение super не должно иметь более одного операнда. 
 1080Ожидание инкрементного или декрементного оператора. 
 1082Ожидание одиночного выражения, заключенного в скобки. 
 1083Синтаксическая ошибка: неожиданное появление %s. В строке кода отсутствует некоторая информация. В следующем примере не хватает какого-то выражения (например, еще одного числа) после последнего знака сложения:
var sum:int = 1 + 2 + ;
 1084Синтаксическая ошибка: ожидание %s перед %s. В этом месте появление данного выражения было неожиданным. Если в ошибке говорится об отсутствии правой фигурной скобки в конце программы, то это означает, что вы не поставили закрывающую фигурную скобку (}).

Если в ошибке говорится об отсутствии левой фигурной скобки перед символом "_", то это означает, что вы не поставили в условном выражении открывающую фигурную скобку (см. следующий пример, в котором умышленно допущена эта ошибка):

var fact:int = 1 * 2 * 3;
if fact > 2 {
	var bigger:Boolean = true;
}
 1086Синтаксическая ошибка: ожидание точки с запятой перед %s. 
 1087Синтаксическая ошибка: в конце программы обнаружены лишние символы. 
 1093Синтаксическая ошибка. 
 1094Синтаксическая ошибка: Строковый литерал должен быть завершен до разрыва строки. 
 1095Синтаксическая ошибка: Строковый литерал должен быть завершен до разрыва строки. 
 1097Синтаксическая ошибка: достигнут конец ввода до закрывающей кавычки строкового литерала. 
 1099Синтаксическая ошибка. 
 1100Синтаксическая ошибка: в XML отсутствуют подходящие теги начала и конца. 
 1102Невозможно удалить потомки super. 
 1103Повторяющееся определение пространства имен. Неоднократное определение пространства имен. Удалите или измените повторяющееся определение.
 1105Целью назначения должно быть контрольное значение. Присваивать значения переменным, но не другим значениям.
 1106Операнд инкремента должен быть ссылкой. Операнд должен представлять собой переменную, элемент массива или свойство объекта.
 1107Неверный операнд инкремента. Операнд должен представлять собой переменную, элемент массива или свойство объекта.
 1108Неверный операнд декремента. Операнд должен представлять собой переменную, элемент массива или свойство объекта.
 1109Ожидание выражения. В части кода отсутствует выражение. Далее приведен пример с этой ошибкой (в инструкции if отсутствует условие):
var x = (5 > 2) ? 
trace(x)
 1110Отсутствует имя тега XML. 
 1112В вероятную непрерывную рекурсию из-за данного файла входит: %s. Включенный в компилируемый исходный код содержит дополнительные инструкции include, что может привести к возникновению бесконечного цикла. Например, файлы a.as и b.as включают друг друга, что приводит к этой ошибке.

В файле a.as содержится строка, включающая файл b.as:

import foo.bar.baz;
include "b.as"
trace(2);

А в файле b.as содержится строка, включающая файл a.as:

include "a.as"
 1113В %s обнаружена ссылка типа circular. Класс пытается расширить суперкласс. Например, класс A не может расширить класс B, если B наследуется от A:
class a extends b { }
class b extends a { }
 1114Атрибут public можно использовать только в пределах пакета. 
 1115Атрибут internal можно использовать только в пределах пакета. 
 1116Определенный пользователем атрибут пространства имен можно использовать только на верхнем уровне определения класса. 
 1118Неявное приведение значения статического типа %s к вероятно несвязанному типу %s. Вы используете значение с неожиданным типом, и не существует неявного приведения к типу для его преобразования в ожидаемый тип.

Возможно, вы использовали супертип там, где ожидалось использование подтипа. Например,

class A {}
var a:A = new A(); 
class B extends A { function f() }
var b : B = a // ошибка

В последней инструкции содержится ошибка, так как здесь происходит попытка присвоить объект типа A переменной типа B.

Далее определяется функция foo(), которая принимает параметр типа B. Выполнение инструкции foo(a); приводит к ошибке, так как она пытается использовать параметр типа A:

function foo(x:B) { }
foo(a);

В этом выражении также содержится ошибка, потому что возвращаемое foo2() значение должно быть типа B:

function foo2():B { return new A(); }
 1119Доступ вероятно неопределенного свойства %s посредством ссылки со статическим типом %s. Вы пытаетесь использовать получить доступ к свойству, которое для указанного объекта отсутствует. Например, в следующем фрагменте кода содержится данная ошибка, так как в объекте int свойство под названием assortment отсутствует:
var i:int = 44;
var str:String = i.assortment;
Эта ошибка возникает, когда компьютер работает в строгом режиме.
 1120Доступ к неопределенному свойству %s. Вы попытались получить доступ к неопределенной переменной. Например, если переменная huh не была определена, то обращение к ней приведет к этой ошибке:
huh = 55;
Эта ошибка возникает только тогда, когда компьютер работает в строгом режиме.
 1121При определении получателя параметры не требуются. 
 1122При определении установщика требуются исключительно один параметр. 
 1123При определении получателя дополнительные параметры не требуются. 
 1124Тип возвращаемого значения определения получателя не должен иметь значение void. Функция получателя имитирует переменную. Так как переменные не могут быть типа void, то и объявлять функции получателей с возвращаемым типом void нельзя.
 1125Определенные в интерфейсе методы не должны иметь тело. 
 1126В функции отсутствует тело. 
 1127Атрибут %s указан несколько раз. Вы несколько раз указали атрибут в пределах одной и той же инструкции. Например, выполнение инструкции public static public var x; приводит к этой ошибке, так как в ней дважды указывается, что переменная x является public. Удалите повторяющиеся объявления.
 1129Повторяющееся определение интерфейса: %s. Удалите или измените повторяющиеся определения.
 1130Конструктор не может определять возвращаемый тип. 
 1131Классы не должны быть вложенными. 
 1132Атрибут final может использоваться только в методе, определенном в классе. 
 1133Атрибут native может использоваться только в определениях функций. 
 1134Атрибут dynamic может использоваться только в определениях классов. 
 1135Синтаксическая ошибка: %s не является допустимым типом. 
 1136Неверное число аргументов. Ожидается %s. Число предоставленных аргументов расходится с числом аргументов, ожидаемых функцией. Например, далее происходит определение функции goo, которая работает с двумя аргументами:
class A { static function goo(x:int,y:int) 
{ return(x+y); } }

В следующей инструкции содержится ошибка, как аргументов на этот раз три:

A.goo(1,2,3);
 1137Неверное число аргументов. Ожидается не более %s. 
 1138Требуемые параметры после дополнительных параметров запрещены. 
 1139Объявление переменных в интерфейсах недопустимо. 
 1140Тип данных параметров, указанных после ключевого слова определения параметра ...rest, может быть исключительно Array. 
 1141Класс может расширять другой класс, но не интерфейс. 
 1142Интерфейс может расширять только другой интерфейс, в то время как %s является классом. Попытка расширения класса с помощью интерфейса. Интерфейс может расширять только другой интерфейс .
 1143Атрибут override может использоваться только в методе, определенном в классе. 
 1144Метод интерфейса %s в пространстве имен %s реализован несовместимой подписью в классе %s. Подписи методов должны полностью совпадать.
 1145Собственные методы не могут иметь тело. Ключевое слово native нельзя использовать, так как оно является зарезервированным.
 1146Конструктор не может быть методом получателя или установщика. 
 1147Исходный файл AS не указан. 
 1149Инструкция return не может использоваться в статическом коде инициализации. 
 1150Атрибут protected может использоваться только в определениях свойств классов. 
 1151Конфликт с определением %s в пространстве имен %s. Нельзя объявлять больше одной переменной с использованием одного и того же имени идентификатора в пределах одной и той же области видимости, если все эти переменные не являются переменными одного типа. В ActionScript 3.0 различные блоки кода (например, используемые в двух циклах for в пределах одного и того же определения функции) принадлежат к одной и той же области видимости.

В нижеприведенном примере кода происходит верное преобразование типа переменной x:

function test()
{
	var x:int = 3;
	for(var x:int = 33; x < 55; x++)
	trace(x);
	for(var x:int = 11; x < 33; x++)
	trace(x)
}

А в примере далее содержится ошибка, так типы, содержащиеся в объявлении переменной и циклах for, отличаются:

function test()
{
	var x:String = "The answer is";
	for(var x:int = 33; x < 55; x++) // ошибка
	trace(x);
	for(var x:unit = 11; x < 33; x++) // ошибка
	trace(x)
}
 1152 Конфликт с унаследованным определением %s в пространстве имен %s. 
 1153Конструктор может быть объявлен только как public. 
 1154В определении допускается указание только одного из следующих типов: public, private, protected или internal. 
 1155Средства доступа не могут быть вложены в другие функции. 
 1156Создать экземпляр интерфейса с помощью оператора new нельзя. 
 1157Члены интерфейсов нельзя объявить как public, private, protected или internal. 
 1158Синтаксическая ошибка: отсутствует открывающая фигурная скобка "{" перед телом функции. 
 1159Инструкция return не может использоваться в коде инициализации пакета. 
 1160Атрибут native не может использоваться в определениях интерфейсов. Ключевое слово native нельзя использовать, так как оно является зарезервированным.
 1162В каждом определении может использоваться не более одного атрибута пространства имен. 
 1163Метод %s конфликтует с определением, унаследованным от интерфейса %s. 
 1165Неверный атрибут интерфейса: %s. 
 1166Объявления пространств имен в интерфейсах запрещены. 
 1167Класс %s неоднократно реализует интерфейс %s. Класс неоднократно реализует один и тот же интерфейс. Далее приведен пример с этой ошибкой, так как класс C дважды реализует интерфейс A:
interface A {  public function f();  };
class C implements A,A {
public function f() { trace("f"); }
}

Правильная инструкция реализации: class C implements A {.

 1168Недопустимое назначение функции %s. Попытка переопределения функции. В следующем примере происходит определение функции topLevel() для вывода на экран слова "top". Во второй инструкции содержится ошибка, так как она присваивает функции другое возвращаемое значение:
function topLevel() { trace("top"); }
topLevel = function() { trace("replacement works in ~");} // ошибка
 1169Атрибуты пространств имен в методах интерфейсов запрещены. 
 1170Функция не возвращает значение. Во всех случаях при вычислении функции должно возвращаться значение, даже если тип возвращаемого значения отличается от void. В следующей функции f(x) ошибки не содержится, так как инструкция if..else всегда возвращает значение:
function f(x):int
{
if (x)
    	return 2;
else
    	return 3;
} // нет ошибки

Однако в примере ниже выполнение функции g(x) приводит к ошибке, так как инструкция switch не всегда возвращает значение.

function g(x:int):int
{
switch(x)
{
      	case 1: return 1;
      	case 2: return 2:
}
// return 2;//удалите комментарий, и ошибка исчезнет
}

Эта проверка действует только когда функция объявляет тип возвращаемого значения, отличного от void.

 1171Инициализатор пространства имен должен быть строковым литералом или другим пространством имен. 
 1172Определение %s не найдено. 
 1173Недопустимое определение метки. 
 1176Сравнение значения статического типа %s с вероятно несвязанным типом %s. Эта ошибка встречается в строгом режиме.
 1177Инструкция return не может использоваться в глобальном коде инициализации. 
 1178Доступ к вероятно неопределенному свойству %s посредством ссылки со статическим типом %s. 
 1180Вызов возможно неопределенного метода %s. Эта ошибка возникает, когда компьютер работает в строгом режиме.
 1181Опережающая ссылка на базовый класс %s. 
 1182Невозможно использовать пакет в качестве переменной: %s. 
 1184Несовместимое значение по умолчанию типа %s там, где ожидалось %s. 
 1185Для переключателя допускается использовать только одно значение по умолчанию. 
 1188Недопустимое назначение классу %s. 
 1189Попытка удаления фиксированного свойства %s. Удалить можно только динамически определенные свойства. Delete удаляет динамически определенные свойства из объекта. Объявленные свойства класса удалить нельзя. Эта ошибка возникает, когда компьютер работает в строгом режиме.
 1190Базовый класс не найден или не является константой периода компиляции. 
 1191Интерфейс не найден или не является константой периода компиляции. 
 1192Использование атрибута static при определении пространств имен запрещено. 
 1193Определения интерфейсов не должны быть вложены в класс или экземпляры других определений интерфейсов. 
 1194Неверный атрибут прототипа. 
 1195Попытка доступа к недоступному методу %s посредством ссылки со статическим типом %s. Возможно, метод private вызывается из другого класса либо происходит вызов метода, определенного в неиспользуемом пространстве имен. При вызове метода из неиспользуемого пространства имен следует добавить инструкцию use для требуемого пространства имен.
 1196Синтаксическая ошибка: ожидание выражения после исключения. 
 1197Класс %s не может расширить класс %s, так как оба класс связаны с символами библиотеки или главной временной шкалой. 
 1198В определениях пакетов атрибуты запрещены. 
 1199Внутренняя ошибка: %s. 
 1200Синтаксическая ошибка: неверный инициализатор цикла for-in, ожидается только 1 выражение. 
 1201Инструкция super не может стоять после инструкции this, super, return или throw. 
 1202Доступ к неопределенному свойству %s в пакете %s. Попытка доступа к неопределенной переменной пакета. Например, если переменная p.huh не была определена, то обращение к ней приведет к этой ошибке:
p.huh = 55;
Эта ошибка возникает, когда компьютер работает в строгом режиме.
 1203В базовом классе %s отсутствует конструктор по умолчанию. Если конструктор базового класса содержит 1 или более обязательных аргументов, то его вызов следует осуществлять с помощью инструкции super() в явном виде.
 1204Обнаружены /* без соответствующих */. Найдены символы начала комментария "/*", однако соответствующих им символов конца блока комментария "*/" не найдено.
 1205Синтаксическая ошибка: ожидание открывающей скобки ({) или строкового литерала (""). 
 1206Инструкция super может использоваться только в качестве последнего элемента в списке инициализатора конструктора. Инструкцию super нельзя использовать в конструкторе. Инструкцию super можно использовать только в качестве последнего элемента в списке инициализатора конструктора.
 1207Ключевое слово this не может использоваться в инициализаторах свойств. Ключевое слово this нельзя использовать в инициализаторе свойства.
 1208Инициализатор значения конфигурации должен являться константой периода компиляции. Значение инициализатора значения конфигурации должно быть известно на этапе компиляции. Инициализатор может представлять собой строковую константу, число, логическое значение или ссылку на другое предварительно определенное значение конфигурации.
 1209Переменная конфигурации может быть объявлена только как const. Переменная конфигурации может быть объявлена только как const.
 1210Объявление значения конфигурации должно происходить на верхнем уровне программы или пакета. Объявление значения конфигурации должно происходить на верхнем уровне программы или пакета.
 1211Пространство имен %s конфликтует с пространством имен конфигурации. Имя пространства имен не может совпадать с именем пространства имен конфигурации.
 1212Значение точность должно быть целым и находиться в пределах от 1 до 34. 
 1213Синтаксическая ошибка: на первом месте в блоке должна стоять инструкция на числовое использование. 
 1214Несовместимая версия: в коде версии %s невозможно создать ссылку на определение %s из кода версии %s.