以下是编译器遇到无效代码时生成的编译错误列表。只有在严谨模式下编译代码时,才能检测到这些错误的子集。严谨模式添加了标准语言中没有的三种约束:
代码 | 消息 | 说明 | |
---|---|---|---|
1000 | 对 _ 的引用不明确。 |
引用可能指向多项。例如,下面使用了 rss 和 xml 命名空间。每个命名空间为 hello() 函数定义了不同的值。trace(hello()) 语句返回此错误,因为它无法确定使用哪个命名空间。
通过使用具体的引用来纠正不明确的引用。下面的示例 使用 namespace::function 这种格式指定所要使用的命名空间:
|
|
1003 | 不允许将访问说明符与命名空间属性结合使用。 | 不能在定义中同时使用访问说明符(如私有或公共)和命名空间属性。 | |
1004 | 找不到命名空间,或者命名空间不是编译时常量。 | 该命名空间未知,或是运行时可能具有不同值的表达式。检查命名空间的拼写及其定义的导入是否正确。 | |
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 | 找不到基类 _ 的定义。 | ||
1018 | 类的定义 _ 重复。 | ||
1020 | 标记为 override 的方法必须覆盖其它方法。 | ||
1021 | 函数的定义重复。 | 在同一个范围内,不能使用相同的标识符名称声明多个函数。 | |
1022 | 不能覆盖 final 存取器。 | ||
1023 | 覆盖不兼容。 | 标记为 override 的函数必须与所要覆盖的函数的参数和返回类型声明完全匹配。它必须具有相同数量的参数,且每个参数的类型相同,还必须声明相同的返回类型。如果任何一个参数是可选的,该函数也必须与此参数匹配。这两个函数还必须使用相同的访问说明符(如公共和私有等)或命名空间属性。 | |
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 | 变量不能是 native。 | ||
1035 | 变量不能同时为 final 和 virtual。 | ||
1037 | 不能嵌套包。 | ||
1038 | 找不到 break 语句的目标。 | ||
1039 | 找不到 continue 语句的目标。 | ||
1040 | 标签的定义重复。 | ||
1041 | 属性是不可调用的。 | ||
1042 | this 关键字不能在 static 方法中使用。它只能在实例方法、函数闭包和全局代码中使用。 |
不能在静态成员的内部使用 this 关键字,因为 this 可能没有上下文。
|
|
1043 | 命名空间未定义。 | ||
1044 | 接口方法 _(属于命名空间 _)未经类 _ 实现。 | ||
1045 | 找不到接口 _。 | ||
1046 | 找不到类型,或者类型不是编译时常量 _。 |
用作类型声明的类未知,或是运行时可能具有不同值的表达式。检查导入的类是否正确以及该类的包位置是否尚未更改。此外,检查包含代码的包(不是导入的类)是否正确定义(例如,确保使用正确的 ActionScript 3.0 包语法,而不是 ActionScript 2.0 包语法)。
如果所要引用的类没有在使用的命名空间中定义或未定义为公共,也会出现该错误:
如果正在使用 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 | 对指定为常量的变量的赋值非法。 | ||
1050 | 不能赋给非引用值。 | ||
1051 | 返回值必须是 undefined。 |
正在试图在声明了 void 返回类型的方法中使用 return 语句。
|
|
1052 | 常量的初始值未知,或不是编译时常量。 | 用来初始化该常量的值是 undefined,或在运行时可能具有不同的值。检查初始值设定项的拼写是否正确,以及初始值设定项的值是不是一个会在运行时导致产生不同值的表达式。 | |
1053 | 存取器类型必须匹配。 | ||
1054 | setter 定义的返回类型必须是 unspecified 或 void。 |
不能为 setter 函数指定返回值。例如,下面的语句无效:
public function set gamma(g:Number):Number; 下面的语句是 有效的: public function set gamma(g:Number):void; |
|
1058 | 属性是只写的。 | ||
1059 | 属性是只读的。 |
此属性通过 getter 函数定义,因此,可以检索该属性的值。但是,不存在为此属性定义的 setter 函数,因此,该属性是只读的。
在下面的示例中,第 3 行会生成错误,因为不存在为 class D { function get xx() { return 22; } } var d:D = new D(); d.xx = 44; // 错误,属性是只读的 |
|
1061 | 调用可能未定义的方法 _(通过静态类型为 _ 的引用来调用)。 | 所要调用的方法未定义。 | |
1063 | 无法打开文件 _。 | ||
1064 | 元数据无效。 | 无法识别此元数据。 | |
1065 | 元数据的属性不能包含多个元素。 | ||
1067 | 将 _ 类型的值隐式强制为无关 _ 类型。 | 正在试图将对象转换为无法转换成的类型。如果所要转换的类不在正在转换的对象继承链中,可能会出现这种情况。仅当编译器在严格模式下运行时,才会出现这种错误。 | |
1068 | 无法打开包含的文件 _。 | ||
1069 | 语法错误:应有定义或指令。 | 检查该行中的语法。 | |
1071 | 语法错误:定义关键字(如 function)应在属性 _ 之后,而不是 _ 之后。 |
如果作者忘记在声明中使用“var”和“function”关键字,将会出现此错误。
编译器遇到意外字符时,也会出现此错误。例如,由于缺少括号,下面使用的 trace() 函数无效(正确的语法是 trace("hello") ):
|
|
1072 | 语法错误:命名空间之前应有 xml。 |
正确的语句语法是 default xml namespace = ns。或者缺少关键字 xml (注意小写),或者使用了错误的关键字。有关详细信息,请参阅默认的 xml 命名空间指令。
|
|
1073 | 语法错误:应有 catch 或 finally 子句。 | ||
1075 | 语法错误:如果没有“in”运算符,则不允许使用“each”关键字。 | ||
1076 | 语法错误:标识符之前应有左括号。 | ||
1077 | 应有 CaseLabel。 |
在 switch 块中,编译器此时应该执行 case 语句。下面的 switch 块错误地在第一个 case 语句之前包含对 print 的调用:
switch(x) { trace(2); case 0: trace(0); break } |
|
1078 | 标签必须是一个简单的标识符。 | ||
1079 | super 表达式必须具有一个操作数。 | ||
1080 | 应有递增或递减运算符。 | ||
1082 | 括号内应有一个表达式。 | ||
1083 | 语法错误:遇到意外的 _。 |
代码行缺少某些信息。在下面的示例中,最后一个加号的后面必须带有某个表达式(如其它数字):
var sum:int = 1 + 2 + ; |
|
1084 | 语法错误:应有 _(_ 之前)。 |
此处不需要该表达式。如果错误是“程序结束之前应有右括号”,则表示代码块缺少右大括号 (})。
如果错误是“_ 之前应有左括号”,则表示条件表达式中可能遗漏括号,如下面的示例(有意出错)所示:
|
|
1086 | 语法错误:_ 之前应有分号。 | ||
1087 | 语法错误:程序结束之后找到额外的字符。 | ||
1093 | 语法错误。 | ||
1094 | 语法错误:字符串文字必须在换行符之前终止。 | ||
1095 | 语法错误:字符串文字必须在换行符之前终止。 | ||
1097 | 语法错误:输入已在到达字符串文字的右引号之前结束。 | ||
1099 | 语法错误。 | ||
1100 | 语法错误:XML 没有匹配的开始和结束标签。 | ||
1102 | 不能删除超级后代。 | ||
1103 | 命名空间的定义重复。 | 已多次定义该命名空间。请删除或修改重复的定义。 | |
1105 | 赋值的目标必须是引用值。 | 可以给变量赋值,但是不能将一个值赋给另外一个值。 | |
1106 | 递增操作数必须是引用。 | 操作数必须是变量、数组中的元素或对象的属性。 | |
1107 | 递增操作数无效。 | 操作数必须是变量、数组中的元素或对象的属性。 | |
1108 | 递减操作数无效。 | 操作数必须是变量、数组中的元素或对象的属性。 | |
1109 | 应有表达式。 |
代码的一部分缺少表达式。例如,下面的代码会生成此错误(if 语句中缺少某项条件):
|
|
1110 | 缺少 XML 标签名称。 | ||
1112 | 可能会出现无限递归问题,因为此文件包含 _。 |
所要编译的源代码中包含的某文件中包含可能导致无限循环的其它 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 | 在 _ 中检测到循环类型引用。 |
类正在尝试扩展超类。例如,如果类 B 从类 A 继承而来,则 A 不能扩展 B:
|
|
1114 | public 属性只能在包的内部使用。 | ||
1115 | internal 属性只能在包的内部使用。 | ||
1116 | 用户定义的命名空间属性只能在顶级的类定义中使用。 | ||
1118 | 将静态类型为 _ 的值隐式强制为可能无关的类型 _。 | 所要使用的值不是预期的类型,不存在将其转换为预期类型的隐式强制。
可能使用的是超级类型,但需要的是子类型。例如:
最后一个语句会出错,因为该语句尝试将类型 A 的对象赋给类型 B 的变量。 同样,下面定义的
此外,下面的语句也会出错,因为
|
|
1119 | 访问可能未定义的属性 _(通过静态类型为 _ 的引用来访问)。 |
正在尝试访问的属性对于指定对象不存在。例如,下面的代码会生成此错误,因为 int 对象没有名为 assortment 的属性:
仅当编译器在严格模式下运行时,才会出现这种错误。
|
|
1120 | 访问未定义的属性 _。 |
正在试图访问未定义的变量。例如,如果尚未定义变量 huh ,调用该变量时会生成此错误:
只有编译器在严格模式下运行时,才会出现此错误。
|
|
1121 | getter 定义不能包含参数。 | ||
1122 | setter 定义只能包含一个参数。 | ||
1123 | setter 定义不能包含可选参数。 | ||
1124 | getter 定义的返回类型不能为 void。 | getter 函数模拟变量。由于变量类型不能为 void,因此不能将 getter 函数声明为返回类型 void。 | |
1125 | 接口中定义的方法不能包含方法体。 | ||
1126 | 函数没有函数体。 | ||
1127 | 已多次指定属性 _。 |
在同一语句中多次指定了某个属性。例如,语句 public static public var x; 会生成此错误,因为该语句两次指定变量 x 是公共变量。请删除重复的声明。
|
|
1129 | 接口的定义 _ 重复。 | 请更改或删除重复的定义。 | |
1130 | 构造函数不能指定返回类型。 | ||
1131 | 不能嵌套类。 | ||
1132 | final 属性只能在类中定义的方法内使用。 | ||
1133 | native 属性只能与函数定义结合使用。 | ||
1134 | dynamic 属性只能与类定义结合使用。 | ||
1135 | 语法错误:_ 不是有效类型。 | ||
1136 | 参数数目不正确。数目应为 _。 |
函数需要的参数数目与提供的参数数目不同。例如, 下面定义的函数 goo 具有两个参数:
class A { static function goo(x:int,y:int) { return(x+y); } } 下面的语句可能会出错,因为该语句提供了三个参数: A.goo(1,2,3); |
|
1137 | 参数数目不正确。不应超过 _ 个。 | ||
1138 | 可选参数之后不允许有必需的参数。 | ||
1139 | 不允许在接口中声明变量。 | ||
1140 | 如果参数是在 ...rest 参数定义关键字之后指定的,则只能是 Array 数据类型。 | ||
1141 | 一个类只能扩展另外一个类,而不能扩展接口。 | ||
1142 | 一个接口只能扩展另外一个接口,但 _ 是一个类。 | 正在试图使用接口扩展类。一个接口只能扩展另外一个 接口。 | |
1143 | override 属性只能在类中定义的方法内使用。 | ||
1144 | 接口方法 _(属于命名空间 _)使用类 _ 中不兼容的签名进行实现。 | 方法签名必须完全匹配。 | |
1145 | Native 方法不能包含方法体。 |
不能使用 native ,因为它是一个保留关键字。
|
|
1146 | 构造函数不能是 getter 或 setter 方法。 | ||
1147 | 未指定 AS 源文件。 | ||
1149 | return 语句不能在静态初始化代码中使用。 | ||
1150 | protected 属性只能在类的属性定义中使用。 | ||
1151 | 定义 _(属于命名空间 _)存在冲突。 |
在同一个范围内,不能使用相同的标识符名称声明多个变量,除非所有这些变量都声明为相同的类型。在 ActionScript 3.0 中,不同的代码 块(例如在同一个函数定义中的两个 for 循环中使用的块) 视为属于同一个范围。
下面的代码示例可以正确地将变量
下面的代码示例会生成错误,因为变量声明和
|
|
1152 | 继承的定义 _(属于命名空间 _)存在冲突。 | ||
1153 | 只能将构造函数声明为公共函数。 | ||
1154 | 只能在定义中指定 public、private、protected 或 internal 之一。 | ||
1155 | 不能在其它函数的内部嵌套存取器。 | ||
1156 | 不能使用新运算符实例化接口。 | ||
1157 | 接口成员不能声明为 public、private、protected 或 internal。 | ||
1158 | 语法错误:函数体之前缺少左大括号 ({)。 | ||
1159 | return 语句不能在包的初始化代码中使用。 | ||
1160 | native 属性不能在接口定义中使用。 |
不能使用 native ,因为它是一个保留关键字。
|
|
1162 | 每个定义中只能使用一个命名空间属性。 | ||
1163 | 方法 _ 与从接口 _ 继承的定义冲突。 | ||
1165 | 接口属性 _ 无效。 | ||
1166 | Namespace declarations are not permitted in interfaces. | ||
1167 | 类 _ 多次实现接口 _。 |
该类多次实现同一个接口。例如,下面的示例会生成此错误,因为类 C 两次实现接口 A:
正确的实现语句应为 |
|
1168 | Illegal assignment to function _. |
正在试图重新定义函数。例如,下面定义的函数 topLevel() 要输出“top”一词。第二个语句会生成错误,因为该语句赋给该函数不同的返回值:
|
|
1169 | 不允许在接口方法中使用命名空间属性。 | ||
1170 | 函数没有返回值。 |
如果返回类型不是 void,函数中每个可能的控制流都必须返回值。下面的函数 f(x) 不会生成错误,因为 if..else 语句总是返回值:
但是,下面的函数
只有函数声明的返回类型不是 void 时,才启用此检查。 |
|
1171 | 命名空间初始值必须是文字字符串或其它命名空间。 | ||
1172 | 找不到定义 _。 | ||
1173 | 标签定义无效。 | ||
1176 | 将静态类型为 _ 的值与可能无关的类型 _ 进行了比较。 | 在严格模式下会生成此错误。 | |
1177 | return 语句不能在全局初始化代码中使用。 | ||
1178 | 尝试访问不可访问的属性 _(通过静态类型为 _ 的引用)。 | ||
1180 | 调用可能未定义的方法 _。 | 仅当编译器在严格模式下运行时,才会出现这种错误。 | |
1181 | 转发对基类 _ 的引用。 | ||
1182 | 包不能用作值 _。 | ||
1184 | 使用了类型 _ 的不兼容默认值,但是应为 _。 | ||
1185 | switch 包含多个默认值,但是只能使用一个默认值。 | ||
1188 | 对类 _ 的赋值非法。 | ||
1189 | 试图删除固定属性 _。只能删除动态定义的属性。 | delete 会从对象中动态删除定义的属性。不能删除类的声明属性。仅当编译器在严格模式下运行时,才会出现这种错误。 | |
1190 | 找不到基类,或基类不是编译时常量。 | ||
1191 | 找不到接口,或接口不是编译时常量。 | ||
1192 | 不允许在命名空间定义中使用 static 属性。 | ||
1193 | 不能在类或其它接口定义中嵌套接口定义。 | ||
1194 | prototype 属性无效。 | ||
1195 | 试图访问不可访问的方法 _(通过静态类型为 _ 的引用)。 | 要么从其它类调用 private 方法,要么调用未使用的命名空间中定义的方法。如果调用的是未使用的命名空间中定义的方法,请为必需的命名空间添加 use 语句。
|
|
1196 | 语法错误:throw 之后应有表达式。 | ||
1197 | 类 _ 不能扩展 _,因为二者都与库符号或主时间轴关联。 | ||
1198 | 不允许在包的定义中使用属性。 | ||
1199 | 内部错误:_。 | ||
1200 | 语法错误:for-in 初始值无效,只能有 1 个表达式。 | ||
1201 | this、super、return 或 throw 语句之后不能出现 super 语句。 | ||
1202 | 访问未定义的属性 _(属于包 _)。 |
正在试图访问包中未定义的变量。例如,如果尚未定义变量 p.huh ,调用该变量时会生成此错误:
仅当编译器在严格模式下运行时,才会出现此错误。
|
|
1203 | 在基类 _ 中未找到默认构造函数。 | 如果有 1 个或多个必选参数,则必须使用 super() 语句显式调用基类的构造函数。 | |
1204 | /* 无对应匹配项 */ . | 发现了指示注释开始位置的字符“/*”,但未发现指示注释块结束位置的对应字符“*/”。 |
当前页: http://livedocs.adobe.com/flash/9.0_cn/ActionScriptLangRefV3/compilerErrors.html