flash/flex 编译错误汇总

本文档详细介绍了ActionScript 3.0中的各种错误代码及其含义,帮助开发者理解并解决编程过程中遇到的问题。从基本的命名空间错误到复杂的类继承冲突,本文档提供了全面的错误说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来源: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 属性。
 1004namespace 要么找不到,要么不是编译时常数。该命名空间未知,或是运行时可能具有不同值的表达式。检查命名空间的拼写及其定义的导入是否正确。
 1006super 表达式只能在类实例方法内部使用。 
 1007super 语句只能在类实例构造函数内部使用。不能在静态成员的内部使用 super 语句。只能在类实例的内部使用 super 语句。
 1008属性无效。 
 1010override 属性只能用于类属性定义。不能在函数块的内部使用 override 关键字。
 1011virtual 属性只能用于类属性定义。声明的属性不属于某个类时(例如在函数块的内部声明某个变量时),不能使用 virtual属性。
 1012static 属性只能用于类内部的定义。 
 1013private 属性只能用于类属性定义。 
 1014intrinsic 属性已不受支持。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存取器类型必须相匹配。 
 1054setter 定义的返回类型必须未指定或为 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标签必须是简单标识符。 
 1079super 表达式必须有一个操作数。 
 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 { }
 1114public 属性只能在包的内部使用。 
 1115internal 属性只能在包的内部使用。 
 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;
只有编译器在严格模式下运行时,才会出现此错误。
 1121getter 定义不能有参数。 
 1122setter 定义只能有一个参数。 
 1123setter 定义不能有可选参数。 
 1124getter 定义的返回类型不能为 void。getter 函数模拟变量。由于变量类型不能为 void,因此不能将 getter 函数声明为返回类型 void。
 1125接口中定义的方法不能含有过程体。 
 1126函数没有过程体。 
 1127多次指定了属性 %s。在同一语句中多次指定了某个属性。例如,语句 public static public var x; 会生成此错误,因为该语句两次指定变量 x 是公共变量。请删除重复的声明。
 1129接口定义重复: %s.请更改或删除重复的定义。
 1130构造函数不能指定返回类型。 
 1131类不能嵌套。 
 1132final 属性只能用于类中定义的方法。 
 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 是类。正在试图使用接口扩展类。一个接口只能扩展另外一个 接口。
 1143override 属性只能用于类中定义的方法。 
 1144实现接口方法 %s(在命名空间 %s 中)时所采用的类 %s 中的签名不兼容。方法签名必须完全匹配。
 1145内置方法不能含有过程体。不能使用 native,因为它是一个保留关键字。
 1146构造函数不能是 getter 方法或 setter 方法。 
 1147没有指定 AS 源文件。 
 1149不能在静态初始化代码中使用返回语句。 
 1150protected 属性只能用于类属性定义。 
 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)的默认值不兼容。 
 1185switch 有多个默认值,但只允许有一个默认值。 
 1188对类 %s 的赋值非法。 
 1189尝试删除的属性 %s 为固定属性。只能删除动态定义的属性。Delete 将删除对象中动态定义的属性。无法删除类的已声明属性。只有当编译器在严谨模式下运行时才会出现此错误。
 1190找不到基类,或者它不是编译时常数。 
 1191找不到接口,或者它不是编译时常数。 
 1192在 namespace 定义中不允许使用 static 属性。 
 1193接口定义不能嵌套在类或其它接口定义中。 
 1194prototype 属性无效。 
 1195尝试访问的方法 %s(通过静态类型为 %s 的引用来访问)不可访问。要么从其它类调用 private 方法,要么调用未使用的命名空间中定义的方法。如果调用的是未使用的命名空间中定义的方法,请为必需的命名空间添加 use 语句。
 1196语法错误:throw 之后应为表达式。 
 1197类 %s 不能扩展 %s,因为两者均与库元件或主时间轴关联。 
 1198在包的定义中不允许使用属性。 
 1199内部错误: %s. 
 1200语法错误:for-in 初始值设定项无效,应该只有一个表达式。 
 1201this、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 的代码中进行。

转载于:https://www.cnblogs.com/-yan/p/4438408.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值