了解导致各种错误的原因,更有助于帮我们解决实际问题。
运行时可能发生以下错误。在 ActionScript 3.0 中,无论是在严谨模式下还是在警告模式下编译,都将进行运行时类型检查。
代码
消息
说明
1000
系统内存不足。
系统可用内存无法满足 Flash Player 编译代码的需要。请关闭系统上正在运行的某些应用程序或进程。
1002
Number.toPrecision 的范围是 1 至 21。Number.toFixed 和 Number.toExponential 的范围是 0 至 20。指定的值不在期望范围之内。
指定的值不在 precision
参数的期望范围之内。Number.toPrecision 的范围是 1 至 21。Number.toFixed 和 Number.toExponential 的范围是 0 至 20。
1003
radix 参数必须介于 2 至 36 之间;实际得到的是 %1。
为方法或属性的 radix
参数传递的值小于 2 或大于 36。请传递一个介于 2 至 36 之间的值作为 radix
参数。
1004
对不兼容的对象调用了方法 %1。
尝试调用的方法不适用于指定对象。如果已将原型函数从一个对象复制到另一个对象然后又调用此函数,但目标对象类型与原始对象类型不同,则会发生此错误。请确保目标对象与原始对象的类型相同。有关详细信息,请参阅 ECMAScript Language Specification(《ECMAScript 语言规范》)第 3 版中的第 15 章。
1005
数组索引不是正整数 (%1)。
尝试使用非正整数的索引值访问数组成员。仅传递正整数作为数组的索引值。
1006
%1 不是函数。
尝试调用不存在的函数时,发生此错误。请确保正在调用正确的函数且自 ActionScript 2.0 以来此 API 尚未发生更改。此外,请确保正在使用正确的对象。例如,使用以下代码时,将出现此错误(由于最后一行错误地调用了变量 big
,而非 blg
):
var blg:String = "foo";
var big:Sprite = new Sprite();
var error:int = big.length();
1009
无法访问空对象引用的属性或方法。
计算结果为 null
的对象可以不包含任何属性。在某些意外(尽管有效)的情况下,可能发生此错误。以创建 Sprite 对象的以下代码为例。由于从未将此 Sprite 对象添加到显示列表中(使用 DisplayObjectContainer 对象的 addChild()
方法),因此其 stage
属性设置为 null
。在这种情况下,此示例将生成此错误,这是因为 Sprite 对象的 stage
属性不能拥有任何属性:
import flash.display.Sprite;
var sprite1:Sprite = new Sprite();
var q:String = sprite1.stage.quality;
1010
术语尚未定义,并且无任何属性。
如果尝试访问并不存在的对象的属性,将发生此错误。例如:
var obj:Object = new Object();
obj.a = "foo";
trace(obj.b.prop);
由于拼写错误也可能产生此错误,在下面的示例中,mc
表示显示列表中的 MovieClip 对象,stage
属性中的小写字母 s 被错误地拼写为大写字母 S(应该为 stage
):
trace(mc.Stage.quality);
1011
方法 %1 包含非法的 opcode %2(在偏移 %3 处)。
请参见此表底部的注意。*
1012
最后一条指令超出代码大小。
请参见此表底部的注意。*
1013
当 scopeDepth 为 0 时,无法调用 OP_findproperty。
请参见此表底部的注意。*
1015
方法 %1 无法设置默认的 XML 命名空间。
请参见此表底部的注意。*
1017
发生范围堆栈上溢。
请参见此表底部的注意。*
1018
发生范围堆栈下溢。
请参见此表底部的注意。*
1019
Getscopeobject %1 超出范围。
请参见此表底部的注意。*
1020
代码不能超出方法结尾。
请参见此表底部的注意。*
1021
至少一个分支目标不是方法中的有效指令。
请参见此表底部的注意。*
1022
void 类型只能用作函数返回类型。
请参见此表底部的注意。*
1023
发生堆栈上溢。
请参见此表底部的注意。*
1024
发生堆栈下溢。
请参见此表底部的注意。*
1025
访问了无效的寄存器 %1。
请参见此表底部的注意。*
1026
插槽 %1 超出 %3 的 slotCount=%2。
请参见此表底部的注意。*
1027
Method_info %1 超出 method_count=%2。
请参见此表底部的注意。*
1028
Disp_id %1 超出 %3 的 max_disp_id=%2。
请参见此表底部的注意。*
1029
Disp_id %1 未在 %2 中定义。
请参见此表底部的注意。*
1030
堆栈深度不对称。 %1 != %2.
请参见此表底部的注意。*
1031
范围深度不对称。 %1 != %2.
请参见此表底部的注意。*
1032
Cpool 索引 %1 超出范围 %2。
请参见此表底部的注意。*
1033
Cpool 条目 %1 是错误的类型。
请参见此表底部的注意。*
1035
在方法 %1 中发现了非法的超级表达式。
请参见此表底部的注意。*
1037
无法向 %2 上的方法 %1 赋值。
请参见此表底部的注意。*
1038
已定义 %1。
在同一作用域内,不能多次声明具有同一标识符名称的变量或函数。在 ActionScript 3.0 中,不同的代码块(如用于同一 function
定义中的两个 for
循环中的代码块)将被视为在同一作用域内。请参见此表底部的注意。*
1039
在方法被引用之前无法对其进行验证。
请参见此表底部的注意。*
1040
instanceof 的右侧必须是类或函数。 instanceof
运算符右侧的表达式必须为类或函数。
1041
运算符的右侧必须是类。 is
运算符右侧的表达式必须为类。
1042
不是 ABC 文件。major_version=%1 minor_version=%2。
使用播放器尝试播放的文件无效:用于生成此 SWF 的工具可能已过期,或此 SWF 本身可能已损坏。
1043
code_length=%1 无效。
请参见此表底部的注意。*
1044
MethodInfo-%1 不支持 flags=%2。
请参见此表底部的注意。*
1045
不支持 traits kind=%1。
请参见此表底部的注意。*
1046
定义前引用了 MethodInfo-%1。
请参见此表底部的注意。*
1047
未找到入口点。
请参见此表底部的注意。*
1049
原型对象必须是 vanilla 对象。
请参见此表底部的注意。*