flash编译器错误查询表.docx
《flash编译器错误查询表.docx》由会员分享,可在线阅读,更多相关《flash编译器错误查询表.docx(16页珍藏版)》请在冰点文库上搜索。
flash编译器错误查询表
flash编译器错误查询表
以下是编译器遇到无效代码时生成的编译错误列表。
只有在严谨模式下编译代码时,才能检测到这些错误的子集。
严谨模式添加了标准语言中没有的三种约束:
表达式有静态类型,且类型错误为验证错误。
附加验证规则捕获常见编程错误。
提前报告验证错误。
以下验证错误仅在严谨模式下出现:
函数调用签名匹配,将检查所提供的参数数目及其类型。
重复定义冲突。
访问编译时未定义的方法或属性时出现未绑定的引用。
在密封对象上动态添加属性。
写入常量变量。
删除固定属性。
比较使用不兼容类型的表达式。
未找到包。
代码消息说明
1000对_的引用不明确。
引用可能指向多项。
例如,下面使用了rss和xml命名空间。
每个命名空间为hello()函数定义了不同的值。
trace(hello())语句返回此错误,因为它无法确定使用哪个命名空间。
privatenamespacerss;
privatenamespacexml;
publicfunctionErrorExamples(){
usenamespacerss;
usenamespacexml;
trace(hello());
}
rssfunctionhello():
String{
return"hola";
}
xmlfunctionhello():
String{
return"foo";
}通过使用具体的引用来纠正不明确的引用。
下面的示例使用namespace:
:
function这种格式指定所要使用的命名空间:
publicfunctionErrorExamples(){
trace(rss:
:
hello());
trace(xml:
:
hello());
}
1003不允许将访问说明符与命名空间属性结合使用。
不能在定义中同时使用访问说明符(如私有或公共)和命名空间属性。
1004找不到命名空间,或者命名空间不是编译时常量。
该命名空间未知,或是运行时可能具有不同值的表达式。
检查命名空间的拼写及其定义的导入是否正确。
1006super表达式只能在类实例方法的内部使用。
1007super语句只能在类实例构造函数的内部使用。
不能在静态成员的内部使用super语句。
只能在类实例的内部使用super语句。
1008属性无效。
1010override属性只能在类的属性定义中使用。
不能在函数块的内部使用override关键字。
1011virtual属性只能在类的属性定义中使用。
声明的属性不属于某个类时(例如在函数块的内部声明某个变量时),不能使用virtual属性。
1012static属性只能在类内部的定义中使用。
1013private属性只能在类的属性定义中使用。
1014不再支持intrinsic属性。
ActionScript3.0doesnotsupporttheintrinsickeyword.
1016基类为final类。
无法扩展超类,因为它标记为final。
1017找不到基类_的定义。
1018类的定义_重复。
1020标记为override的方法必须覆盖其它方法。
1021函数的定义重复。
在同一个范围内,不能使用相同的标识符名称声明多个函数。
1022不能覆盖final存取器。
1023覆盖不兼容。
标记为override的函数必须与所要覆盖的函数的参数和返回类型声明完全匹配。
它必须具有相同数量的参数,且每个参数的类型相同,还必须声明相同的返回类型。
如果任何一个参数是可选的,该函数也必须与此参数匹配。
这两个函数还必须使用相同的访问说明符(如公共和私有等)或命名空间属性。
1024覆盖没有标记为override的函数。
如果某个类中的方法覆盖基类中的方法,则必须使用override属性对其进行显式声明,如下面的示例所示:
publicoverridefunctionfoo():
void{};
1025不能重新定义final方法。
不能扩展该方法,因为它在基类中标记为final。
1026构造函数必须是实例方法。
1027函数不能同时为static和override函数。
1028函数不能同时为static和virtual函数。
1029函数不能同时为final和virtual函数。
1030必须指定变量参数数组的名称。
...(rest)参数定义指定:
...(rest)之后提供的所有值都收集到任一数组中。
必须指定该数组的名称,如functionfoo(x,...(rest))表达式中所示。
1033不支持virtual变量。
1034变量不能是native。
1035变量不能同时为final和virtual。
1037不能嵌套包。
1038找不到break语句的目标。
1039找不到continue语句的目标。
1040标签的定义重复。
1041属性是不可调用的。
1042this关键字不能在static方法中使用。
它只能在实例方法、函数闭包和全局代码中使用。
不能在静态成员的内部使用this关键字,因为this可能没有上下文。
1043命名空间未定义。
1044接口方法_(属于命名空间_)未经类_实现。
1045找不到接口_。
1046找不到类型,或者类型不是编译时常量_。
用作类型声明的类未知,或是运行时可能具有不同值的表达式。
检查导入的类是否正确以及该类的包位置是否尚未更改。
此外,检查包含代码的包(不是导入的类)是否正确定义(例如,确保使用正确的ActionScript3.0包语法,而不是ActionScript2.0包语法)。
如果所要引用的类没有在使用的命名空间中定义或未定义为公共,也会出现该错误:
publicclassFoo{}如果正在使用Flex™Builder™2并且该类存在于库中,请确保为项目设置类路径。
1047参数的初始值未知,或不是编译时常量。
用作该参数默认值的值未定义或在运行时可能具有不同的值。
检查初始值设定项的拼写是否正确,以及初始值设定项的值是不是一个会在运行时导致产生不同值的表达式。
1048方法不能用作构造函数。
不能创建类方法的实例。
只有全局函数才能在new表达式中使用。
classD{functionxx(){return22;}}
vard:
D=newD();
varx=newd.xx();//错误,方法不能用作构造函数
functionyy(){this.a=22;}
varz=newyy();//无错误,全局函数可以用作构造函数。
1049对指定为常量的变量的赋值非法。
1050不能赋给非引用值。
1051返回值必须是undefined。
正在试图在声明了void返回类型的方法中使用return语句。
1052常量的初始值未知,或不是编译时常量。
用来初始化该常量的值是undefined,或在运行时可能具有不同的值。
检查初始值设定项的拼写是否正确,以及初始值设定项的值是不是一个会在运行时导致产生不同值的表达式。
1053存取器类型必须匹配。
1054setter定义的返回类型必须是unspecified或void。
不能为setter函数指定返回值。
例如,下面的语句无效:
publicfunctionsetgamma(g:
Number):
Number;下面的语句是有效的:
publicfunctionsetgamma(g:
Number):
void;
1058属性是只写的。
1059属性是只读的。
此属性通过getter函数定义,因此,可以检索该属性的值。
但是,不存在为此属性定义的setter函数,因此,该属性是只读的。
在下面的示例中,第3行会生成错误,因为不存在为xx定义的setter函数:
classD{functiongetxx(){return22;}}
vard:
D=newD();
d.xx=44;//错误,属性是只读的
1061调用可能未定义的方法_(通过静态类型为_的引用来调用)。
所要调用的方法未定义。
1063无法打开文件_。
1064元数据无效。
无法识别此元数据。
1065元数据的属性不能包含多个元素。
1067将_类型的值隐式强制为无关_类型。
正在试图将对象转换为无法转换成的类型。
如果所要转换的类不在正在转换的对象继承链中,可能会出现这种情况。
仅当编译器在严格模式下运行时,才会出现这种错误。
1068无法打开包含的文件_。
1069语法错误:
应有定义或指令。
Checkthesyntaxintheline.
1071语法错误:
定义关键字(如function)应在属性_之后,而不是_之后。
如果作者忘记在声明中使用“var”和“function”关键字,将会出现此错误。
publicintz;//应为“publicvarz:
int;”编译器遇到意外字符时,也会出现此错误。
例如,由于缺少括号,下面使用的trace()函数无效(正确的语法是trace("hello")):
importflash.utils.trace;
trace"hello"
1072语法错误:
命名空间之前应有xml。
正确的语句语法是defaultxmlnamespace=ns。
或者缺少关键字xml(注意小写),或者使用了错误的关键字。
有关详细信息,请参阅默认的xml命名空间指令。
1073语法错误:
应有catch或finally子句。
1075语法错误:
如果没有“in”运算符,则不允许使用“each”关键字。
1076语法错误:
标识符之前应有左括号。
1077应有CaseLabel。
在switch块中,编译器此时应该执行case语句。
下面的switch块错误地在第一个case语句之前包含对print的调用:
switch(x)
{
trace
(2);
case0:
trace(0);
break
}
1078标签必须是一个简单的标识符。
1079super表达式必须具有一个操作数。
1080应有递增或递减运算符。
1082括号内应有一个表达式。
1083语法错误:
遇到意外的_。
代码行缺少某些信息。
在下面的示例中,最后一个加号的后面必须带有某个表达式(如其它数字):
varsum:
int=1+2+;
1084语法错误:
应有_(_之前)。
此处不需要该表达式。
如果错误是“程序结束之前应有右括号”,则表示代码块缺少右大括号(})。
如果错误是“_之前应有左括号”,则表示条件表达式中可能遗漏括号,如下面的示例(有意出错)所示:
varfact:
int=1*2*3;
iffact>2{
varbigger:
Boolean=true;
}
1086语法错误:
_之前应有分号。
1087语法错误:
程序结束之后找到额外的字符。
1093语法错误。
1094语法错误:
字符串文字必须在换行符之前终止。
1095语法错误:
字符串文字必须在换行符之前终止。
1097语法错误:
输入已在到达字符串文字的右引号之前结束。
1099语法错误。
1100语法错误:
XML没有匹配的开始和结束标签。
1102不能删除超级后代。
1103命名空间的定义重复。
已多次定义该命名空间。
请删除或修改重复的定义。
1105赋值的目标必须是引用值。
可以给变量赋值,但是不能将一个值赋给另外一个值。
1106递增操作数必须是引用。
操作数必须是变量、数组中的元素或对象的属性。
1107递增操作数无效。
操作数必须是变量、数组中的元素或对象的属性。
1108递减操作数无效。
操作数必须是变量、数组中的元素或对象的属性。
1109应有表达式。
代码的一部分缺少表达式。
例如,下面的代码会生成此错误(if语句中缺少某项条件):
varx=(5>2)?
trace(x)
1110缺少XML标签名称。
1112可能会出现无限递归问题,因为此文件包含_。
所要编译的源代码中包含的某文件中包含可能导致无限循环的其它include语句。
例如,下面的a.as和b.as文件会生成此错误,因为每个文件都试图包含另外一个文件。
文件a.as中包含以下代码,它试图包含文件b.as:
importfoo.bar.baz;
include"b.as"
trace
(2);文件b.as包含以下代码,它试图包含文件a.as:
include"a.as"
1113在_中检测到循环类型引用。
类正在尝试扩展超类。
例如,如果类B从类A继承而来,则A不能扩展B:
classaextendsb{}
classbextendsa{}
1114public属性只能在包的内部使用。
1115internal属性只能在包的内部使用。
1116用户定义的命名空间属性只能在顶级的类定义中使用。
1118将静态类型为_的值隐式强制为可能无关的类型_。
所要使用的值不是预期的类型,不存在将其转换为预期类型的隐式强制。
可能使用的是超级类型,但需要的是子类型。
例如:
classA{}
vara:
A=newA();
classBextendsA{functionf()}
varb:
B=a//错误最后一个语句会出错,因为该语句尝试将类型A的对象赋给类型B的变量。
同样,下面定义的foo()函数采用了类型为B的参数。
语句foo(a);会出错,因为该语句试图使用类型为A的参数:
functionfoo(x:
B){}
foo(a);此外,下面的语句也会出错,因为foo2()的返回值必须为类型B:
functionfoo2():
B{returnnewA();}
1119访问可能未定义的属性_(通过静态类型为_的引用来访问)。
正在尝试访问的属性对于指定对象不存在。
例如,下面的代码会生成此错误,因为int对象没有名为assortment的属性:
vari:
int=44;
varstr:
String=i.assortment;仅当编译器在严格模式下运行时,才会出现这种错误。
1120访问未定义的属性_。
正在试图访问未定义的变量。
例如,如果尚未定义变量huh,调用该变量时会生成此错误:
huh=55;只有编译器在严格模式下运行时,才会出现此错误。
1121getter定义不能包含参数。
1122setter定义只能包含一个参数。
1123setter定义不能包含可选参数。
1124getter定义的返回类型不能为void。
getter函数模拟变量。
由于变量类型不能为void,因此不能将getter函数声明为返回类型void。
1125接口中定义的方法不能包含方法体。
1126函数没有函数体。
1127已多次指定属性_。
在同一语句中多次指定了某个属性。
例如,语句publicstaticpublicvarx;会生成此错误,因为该语句两次指定变量x是公共变量。
请删除重复的声明。
1129接口的定义_重复。
请更改或删除重复的定义。
1130构造函数不能指定返回类型。
1131不能嵌套类。
1132final属性只能在类中定义的方法内使用。
1133native属性只能与函数定义结合使用。
1134dynamic属性只能与类定义结合使用。
1135语法错误:
_不是有效类型。
1136参数数目不正确。
数目应为_。
函数需要的参数数目与提供的参数数目不同。
例如,下面定义的函数goo具有两个参数:
classA{staticfunctiongoo(x:
int,y:
int)
{return(x+y);}}下面的语句可能会出错,因为该语句提供了三个参数:
A.goo(1,2,3);
1137参数数目不正确。
不应超过_个。
1138可选参数之后不允许有必需的参数。
1139不允许在接口中声明变量。
1140如果参数是在...rest参数定义关键字之后指定的,则只能是Array数据类型。
1141一个类只能扩展另外一个类,而不能扩展接口。
1142一个接口只能扩展另外一个接口,但_是一个类。
正在试图使用接口扩展类。
一个接口只能扩展另外一个接口。
1143override属性只能在类中定义的方法内使用。
1144接口方法_(属于命名空间_)使用类_中不兼容的签名进行实现。
方法签名必须完全匹配。
1145Native方法不能包含方法体。
不能使用native,因为它是一个保留关键字。
1146构造函数不能是getter或setter方法。
1147未指定AS源文件。
1149return语句不能在静态初始化代码中使用。
1150protected属性只能在类的属性定义中使用。
1151定义_(属于命名空间_)存在冲突。
在同一个范围内,不能使用相同的标识符名称声明多个变量,除非所有这些变量都声明为相同的类型。
在ActionScript3.0中,不同的代码块(例如在同一个函数定义中的两个for循环中使用的块)视为属于同一个范围。
下面的代码示例可以正确地将变量x转换为相同类型:
functiontest()
{
varx:
int=3;
for(varx:
int=33;x<55;x++)
trace(x);
for(varx:
int=11;x<33;x++)
trace(x)
}下面的代码示例会生成错误,因为变量声明和for循环中的类型转换是不同的:
functiontest()
{
varx:
String="Theansweris";
for(varx:
int=33;x<55;x++)//错误
trace(x);
for(varx:
unit=11;x<33;x++)//错误
trace(x)
}
1152继承的定义_(属于命名空间_)存在冲突。
1153只能将构造函数声明为公共函数。
1154只能在定义中指定public、private、protected或internal之一。
1155不能在其它函数的内部嵌套存取器。
1156不能使用新运算符实例化接口。
1157接口成员不能声明为public、private、protected或internal。
1158语法错误:
函数体之前缺少左大括号({)。
1159return语句不能在包的初始化代码中使用。
1160native属性不能在接口定义中使用。
不能使用native,因为它是一个保留关键字。
1162每个定义中只能使用一个命名空间属性。
1163方法_与从接口_继承的定义冲突。
1165接口属性_无效。
1166Namespacedeclarationsarenotpermittedininterfaces.
1167类_多次实现接口_。
该类多次实现同一个接口。
例如,下面的示例会生成此错误,因为类C两次实现接口A:
interfaceA{publicfunctionf();};
classCimplementsA,A{
publicfunctionf(){trace("f");}
}正确的实现语句应为classCimplementsA{。
1168Illegalassignmenttofunction_.正在试图重新定义函数。
例如,下面定义的函数topLevel()要输出“top”一词。
第二个语句会生成错误,因为该语句赋给该函数不同的返回值:
functiontopLevel(){trace("top");}
topLevel=function(){trace("replacementworksin~");}//错误
1169不允许在接口方法中使用命名空间属性。
1170函数没有返回值。
如果返回类型不是void,函数中每个可能的控制流都必须返回值。
下面的函数f(x)不会生成错误,因为if..else语句总是返回值:
functionf(x):
int
{
if(x)
return2;
else
return3;
}//无错误但是,下面的函数g(x)会生成该错误,因为switch语句并非总是返回值。
functiong(x:
int):
int
{
switch(x)
{
case1:
return1;
case2:
return2:
}
//return2;//取消注释可清除该错误
}只有函数声明的返回类型不是void时,才启用此检查。
1171命名空间初始值必须是文字字符串或其它命名空间。
1172找不到定义_。
1173标签定义无效。
1176将静态类型为_的值与可能无关的类型_进行了比较。
在严格模式下会生成此错误。
1177return语句不能在全局初始化代码中使用。
1178尝试访问不可访问的属性_(通过静态类型为_的引用)。
1180调用可能未定义的方法_。
仅当编译器在严格模式下运行时,才会出现这种错误。
1181转发对基类_的引用。
1182包不能用作值_。
1184使用了类型_的不兼容默认值,但是应为_。
1185switch包含多个默认值,但是只能使用一个默认值。
1188对类_的赋值非法。
1189试图删除固定属性_。
只能删除动态定义的属性。
delete会从对象中动态删除定义的属性。
不能删除类的声明属性。
仅当编译器在严格模式下运行时,才会出现这种错误。
1190找不到基类,或基类不是编译时常量。
1191找不到接口,或接口不是编译时常量。
1192不允许在命名空间定义中使用static属性。
1193不能在类或其它接口定义中嵌套接口