flash/flex 编译错误汇总

时间:2022-04-04 09:06:43

来源:http://blog.chinaunix.net/uid-366408-id-116463.html

代码 消息 说明
  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 不允许将访问说明符与 namespace 属性一同使用。 不能在定义中既使用访问说明符(如 private 或 public)又使用 namespace 属性。
  1004 namespace 要么找不到,要么不是编译时常数。 该命名空间未知,或是运行时可能具有不同值的表达式。检查命名空间的拼写及其定义的导入是否正确。
  1006 super 表达式只能在类实例方法内部使用。  
  1007 super 语句只能在类实例构造函数内部使用。 不能在静态成员的内部使用 super 语句。只能在类实例的内部使用 super 语句。
  1008 属性无效。  
  1010 override 属性只能用于类属性定义。 不能在函数块的内部使用 override 关键字。
  1011 virtual 属性只能用于类属性定义。 声明的属性不属于某个类时(例如在函数块的内部声明某个变量时),不能使用 virtual属性。
  1012 static 属性只能用于类内部的定义。  
  1013 private 属性只能用于类属性定义。  
  1014 intrinsic 属性已不受支持。 ActionScript 3.0 不支持 intrinsic 关键字。
  1016 基类为 final。 无法扩展超类,因为它标记为 final
  1017 未找到基类 %s 的定义。  
  1018 类定义重复: %s.  
  1020 标记为 override 的方法必须覆盖另一方法。  
  1021 函数定义重复。 不能在同一范围内使用同一个标识符名称声明多个函数。
  1022 无法覆盖 final 存取器。  
  1023 不兼容的覆盖。 标记为 override 的函数必须与它正在覆盖的函数的参数和返回类型声明完全匹配。这两个函数的参数个数必须相同,每个参数的类型必须相同,声明的返回类型也必须相同。如果存在可选参数,这些参数也必须是匹配的。此外,这两个函数还必须使用相同的访问说明符(public、private 等)或 namespace 属性。
  1024 正在覆盖未标记为 override 的函数。 如果某个类中的方法覆盖基类中的方法,则必须使用 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 不支持 virtual 变量。  
  1034 变量不能是内置变量。  
  1035 变量不能同时标记为 final 和 virtual。  
  1037 包不能嵌套。  
  1038 找不到 break 语句的目标。  
  1039 找不到 continue 语句的目标。  
  1040 标签定义重复。  
  1041 属性不可调用。  
  1042 不能在 static 方法中使用 this 关键字。该关键字只能在实例方法、函数闭包和全局代码中使用。 不能在静态成员的内部使用 this 关键字,因为 this 可能没有上下文。
  1043 未定义的命名空间。  
  1044 接口方法 %s(在命名空间 %s 中)未由类 %s 实现。  
  1045 未找到接口 %s。  
  1046 找不到类型,或者它不是编译时常数: %s. 用作类型声明的类未知,或是运行时可能具有不同值的表达式。检查导入的类是否正确以及该类的包位置是否尚未更改。此外,检查包含代码的包(不是导入的类)是否正确定义(例如,确保使用正确的 ActionScript 3.0 包语法,而不是 ActionScript 2.0 包语法)。

如果所要引用的类没有在使用的命名空间中定义或未定义为公共,也会出现该错误:

public class Foo{}

If you are using Flex™ Builder™ 2 and the class is in a library, make sure to set the class path for the project.

  1047 参数初始值设定项未知或不是编译时常数。 用作该参数默认值的值未定义或在运行时可能具有不同的值。检查初始值设定项的拼写是否正确,以及初始值设定项的值是不是一个会在运行时导致产生不同值的表达式。
  1048 方法不能用作构造函数。 不能创建类方法的实例。只有全局函数才能在 new 表达式中使用。
class D { function xx() { return 22; } }
var d:D = new D();
var x = new d.xx(); // error, method cannot be used as constructor
function yy() { this.a = 22; }
var z = new yy(); // no error, global functions can be used as constructors.
  1049 对指定为常数的变量进行的赋值非法。  
  1050 无法为非引用值赋值。  
  1051 返回值必须未定义。 正尝试在已声明 void 返回类型的方法中使用 return 语句。
  1052 常数初始值设定项未知或不是编译时常数。 用来初始化该常量的值是 undefined,或在运行时可能具有不同的值。检查初始值设定项的拼写是否正确,以及初始值设定项的值是不是一个会在运行时导致产生不同值的表达式。
  1053 存取器类型必须相匹配。  
  1054 setter 定义的返回类型必须未指定或为 void。 不能为 setter 函数指定返回值。例如,下面的语句无效:
public function set gamma(g:Number):Number;

下面的语句是 有效的:

public function set gamma(g:Number):void;
  1058 属性是只写的。  
  1059 属性是只读的。 此属性通过 getter 函数定义,因此,可以检索该属性的值。但是,不存在为此属性定义的 setter 函数,因此,该属性是只读的。

在下面的示例中,第 3 行会生成错误,因为不存在为 xx 定义的 setter 函数:

class D { function get xx() { return 22; } }
var d:D = new D();
d.xx = 44; // error, property is read-only
  1061 所调用的方法 %s(通过静态类型为 %s 的引用来调用)可能未定义。 所要调用的方法未定义。
  1063 无法打开文件: %s.  
  1064 元数据无效。 无法识别此元数据。
  1065 元数据属性不能包含多个元素。  
  1067 将 %s 类型的值隐式强制转换为非相关类型 %s。 正在试图将对象转换为无法转换成的类型。如果所要转换的类不在正在转换的对象继承链中,可能会出现这种情况。只有当编译器在严谨模式下运行时才会出现此错误。
  1068 无法打开所包含的文件: %s.  
  1069 语法错误:需要定义或指令。 检查该行的语法。
  1071 语法错误:定义关键字(如 function)应在属性 %s 之后,而非 %s 之后。 如果作者忘记在声明中使用“var”和“function”关键字,将会出现此错误。
public int z;// should be 'public var z:int;'

编译器遇到意外字符时,也会出现此错误。例如,由于缺少括号,下面使用的 trace() 函数无效(正确的语法是 trace("hello")):

trace "hello"
  1072 语法错误:在 namespace 之前应该有 xml。 正确的语句语法是 default xml namespace = ns。或者缺少关键字 xml(注意小写),或者使用了错误的关键字。有关详细信息,请参阅默认的 xml 命名空间指令。
  1073 语法错误:需要 catch 或 finally 子句。  
  1075 语法错误:'each' 关键字必须带有 'in' 运算符。  
  1076 语法错误:在标识符之前应该有左括号。  
  1077 需要 CaseLabel。 在 switch 块中,编译器此时应该执行 case 语句。下面的 switch 块错误地在第一个case 语句之前包含对 print 的调用:
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 中检测到循环类型引用。 类正在尝试扩展超类。例如,如果类 B 从类 A 继承而来,则 A 不能扩展 B:
class a extends b { }
class b extends a { }
  1114 public 属性只能在包的内部使用。  
  1115 internal 属性只能在包的内部使用。  
  1116 用户定义的 namespace 属性只能在类定义的*使用。  
  1118 将静态类型为 %s 的值隐式强制转换为可能非相关类型 %s。 所要使用的值不是预期的类型,不存在将其转换为预期类型的隐式强制。

可能使用的是超级类型,但需要的是子类型。例如:

class A {}
var a:A = new A();
class B extends A { function f() }
var b : B = a // error

最后一个语句会出错,因为该语句尝试将类型 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 getter 定义不能有参数。  
  1122 setter 定义只能有一个参数。  
  1123 setter 定义不能有可选参数。  
  1124 getter 定义的返回类型不能为 void。 getter 函数模拟变量。由于变量类型不能为 void,因此不能将 getter 函数声明为返回类型 void。
  1125 接口中定义的方法不能含有过程体。  
  1126 函数没有过程体。  
  1127 多次指定了属性 %s。 在同一语句中多次指定了某个属性。例如,语句 public static public var x; 会生成此错误,因为该语句两次指定变量 x 是公共变量。请删除重复的声明。
  1129 接口定义重复: %s. 请更改或删除重复的定义。
  1130 构造函数不能指定返回类型。  
  1131 类不能嵌套。  
  1132 final 属性只能用于类中定义的方法。  
  1133 内置属性只能与函数定义一起使用。  
  1134 动态属性只能与类定义一起使用。  
  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 构造函数不能是 getter 方法或 setter 方法。  
  1147 没有指定 AS 源文件。  
  1149 不能在静态初始化代码中使用返回语句。  
  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++) // error
trace(x);
for(var x:unit = 11; x < 33; x++) // error
trace(x)
}
  1152 与继承的定义 %s(在命名空间 %s 中)存在冲突。  
  1153 构造函数只能声明为 public。  
  1154 在定义中只能指定 public、private、protected 或 internal 中的一个。  
  1155 存取器不能嵌套在其它函数中。  
  1156 不能使用新的运算符对接口进行实例化。  
  1157 接口成员不能声明为 public、private、protected 或 internal。  
  1158 语法错误:函数体之前缺少左大括号 ({)。  
  1159 不能在包初始化代码中使用返回语句。  
  1160 内置属性不能用于接口定义。 不能使用 native,因为它是一个保留关键字。
  1162 每个定义只能使用一个 namespace 属性。  
  1163 方法 %s 与从接口 %s 继承的定义存在冲突。  
  1165 接口属性 %s 无效。  
  1166 不允许在接口中使用 namespace 声明。  
  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() 要输出搕op斠淮省第二个语句会生成错误,因为该语句赋给该函数不同的返回值:
function topLevel() { trace("top"); }
topLevel = function() { trace("replacement works in ~");} // error
  1169 不允许在接口方法中使用 namespace 属性。  
  1170 函数没有返回值。 如果返回类型不是 void,函数中每个可能的控制流都必须返回值。下面的函数 f(x) 不会生成错误,因为 if..else 语句总是返回值:
function f(x):int
{
if (x)
return 2;
else
return 3;
} // no error

但是,下面的函数 g(x) 会生成该错误,因为 switch 语句并非总是返回值。

function g(x:int):int
{
switch(x)
{
case 1: return 1;
case 2: return 2:
}
// return 2;//uncomment to remove the error
}

只有函数声明的返回类型不是 void 时,才启用此检查。

  1171 一个 namespace 的初始值设定项必须是一个原义字符串或者是另一个 namespace。  
  1172 找不到定义 %s。  
  1173 标签定义无效。  
  1176 与静态类型为 %s 的值进行比较的可能是非相关类型 %s。 在严谨模式下出现这一错误。
  1177 不能在全局初始化代码中使用返回语句。  
  1178 尝试访问的属性 %s(通过静态类型为 %s 的引用来访问)不可访问。  
  1180 所调用的方法 %s 可能未定义。 只有当编译器在严谨模式下运行时才会出现此错误。
  1181 前向引用指向基类 %s。  
  1182 包不能作为以下值使用: %s.  
  1184 类型 %s(应为 %s)的默认值不兼容。  
  1185 switch 有多个默认值,但只允许有一个默认值。  
  1188 对类 %s 的赋值非法。  
  1189 尝试删除的属性 %s 为固定属性。只能删除动态定义的属性。 Delete 将删除对象中动态定义的属性。无法删除类的已声明属性。只有当编译器在严谨模式下运行时才会出现此错误。
  1190 找不到基类,或者它不是编译时常数。  
  1191 找不到接口,或者它不是编译时常数。  
  1192 在 namespace 定义中不允许使用 static 属性。  
  1193 接口定义不能嵌套在类或其它接口定义中。  
  1194 prototype 属性无效。  
  1195 尝试访问的方法 %s(通过静态类型为 %s 的引用来访问)不可访问。 要么从其它类调用 private 方法,要么调用未使用的命名空间中定义的方法。如果调用的是未使用的命名空间中定义的方法,请为必需的命名空间添加 use 语句。
  1196 语法错误:throw 之后应为表达式。  
  1197 类 %s 不能扩展 %s,因为两者均与库元件或主时间轴关联。  
  1198 在包的定义中不允许使用属性。  
  1199 内部错误: %s.  
  1200 语法错误:for-in 初始值设定项无效,应该只有一个表达式。  
  1201 this、super、return 或 throw 语句后面不能出现 super 语句。  
  1202 所访问的属性 %s(在包 %s 中)未定义。 正在试图访问包中未定义的变量。例如,如果尚未定义变量 p.huh,调用该变量时会生成此错误:
p.huh = 55;

仅当编译器在严谨模式下运行时,才会出现这种错误。

  1203 在基类 %s 中未找到默认的构造函数。 如果基类的构造函数带有一个或多个必选参数,则必须使用 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 的代码中进行。