<script src="http://hi.images.csdn.net/js/blog/LoadFeedbackCount.js" type="text/javascript"></script>
? as3編譯器錯誤中文說明 收藏
<script type="text/javascript"> document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData("text"); if (text && text.length>300) { text = text + "\r\n\n本文來自CSDN博客,轉載請標明出處:" + location.href; clipboardData.setData("text", text); } }, 100); } } </script><script class="blogstory">function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script> as3 編譯器錯誤中文說明
http://blog.csdn.net/liuchaojun/archive/2008/05/09/2421452.aspx
as3錯誤代碼對應的中文說明,摘自flash9中文幫助文檔
1000
對 _ 的引用不明確。
引用可能指向多項。例如,下面使用了 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
不允許將訪問說明符與命名空間屬性結合使用。
不能在定義中同時使用訪問說明符(如私有或公共)和命名空間屬性。
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 包語法)。如果所要引用的類沒有在使用的命名空間中定義或未定義為公共,也會出現該錯誤:
public class Foo{}
如果正在使用 Flex? Builder? 2 并且該類存在于庫中,請確保為項目設置類路徑。
1047
參數的初始值未知,或不是編譯時常量。
用作該參數默認值的值未定義或在運行時可能具有不同的值。檢查初始值設定項的拼寫是否正確,以及初始值設定項的值是不是一個會在運行時導致產生不同值的表達式。
1048
方法不能用作構造函數。
不能創建類方法的實例。只有全局函數才能在 new 表達式中使用。 class D { function xx() { return 22; } } var 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 行會生成錯誤,因為不存在為 xx 定義的 setter 函數:
class D { function get xx() { return 22; } } var d
= new D(); d.xx = 44; // 錯誤,屬性是只讀的
1061
調用可能未定義的方法 _(通過靜態類型為 _ 的引用來調用)。
所要調用的方法未定義。
1063
無法打開文件 _。
1064
元數據無效。
無法識別此元數據。
1065
元數據的屬性不能包含多個元素。
1067
將 _ 類型的值隱式強制為無關 _ 類型。
正在試圖將對象轉換為無法轉換成的類型。如果所要轉換的類不在正在轉換的對象繼承鏈中,可能會出現這種情況。僅當編譯器在嚴格模式下運行時,才會出現這種錯誤。
1068
無法打開包含的文件 _。
1069
語法錯誤:應有定義或指令。
檢查該行中的語法。
1071
語法錯誤:定義關鍵字(如 function)應在屬性 _ 之后,而不是 _ 之后。
如果作者忘記在聲明中使用“var”和“function”關鍵字,將會出現此錯誤。 public int z;// 應為“public var z:int;”
編譯器遇到意外字符時,也會出現此錯誤。例如,由于缺少括號,下面使用的 trace() 函數無效(正確的語法是 trace("hello")): import
flash
.utils.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
語法錯誤:應有 _(_ 之前)。
此處不需要該表達式。如果錯誤是“程序結束之前應有右括號”,則表示代碼塊缺少右大括號 (})。 如果錯誤是“_ 之前應有左括號”,則表示條件表達式中可能遺漏括號,如下面的示例(有意出錯)所示:
var fact:int = 1 * 2 * 3; if fact > 2 {??var bigger:Boolean = true; }
1086
語法錯誤:_ 之前應有分號。
1087
語法錯誤:程序結束之后找到額外的字符。
1093
語法錯誤。
1094
語法錯誤:字符串文字必須在換行符之前終止。
1095
語法錯誤:字符串文字必須在換行符之前終止。
1097
語法錯誤:輸入已在到達字符串文字的右引號之前結束。
1099
語法錯誤。
1100
語法錯誤:XML 沒有匹配的開始和結束標簽。
1102
不能刪除超級后代。
1103
命名空間的定義重復。
已多次定義該命名空間。請刪除或修改重復的定義。
1105
賦值的目標必須是引用值。
可以給變量賦值,但是不能將一個值賦給另外一個值。
1106
遞增操作數必須是引用。
操作數必須是變量、數組中的元素或對象的屬性。
1107
遞增操作數無效。
操作數必須是變量、數組中的元素或對象的屬性。
1108
遞減操作數無效。
操作數必須是變量、數組中的元素或對象的屬性。
1109
應有表達式。
代碼的一部分缺少表達式。例如,下面的代碼會生成此錯誤(if 語句中缺少某項條件): var x = (5 > 2) ???trace(x)
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: class a extends b { } class b extends a { }
1114
public 屬性只能在包的內部使用。
1115
internal 屬性只能在包的內部使用。
1116
用戶定義的命名空間屬性只能在頂級的類定義中使用。
1118
將靜態類型為 _ 的值隱式強制為可能無關的類型 _。
所要使用的值不是預期的類型,不存在將其轉換為預期類型的隱式強制。 可能使用的是超級類型,但需要的是子類型。例如:
class A {} var a:A = new A();??class B extends A { function f() } var b : B = a // 錯誤
最后一個語句會出錯,因為該語句嘗試將類型 A 的對象賦給類型 B 的變量。
同樣,下面定義的 foo() 函數采用了類型為 B 的參數。語句 foo(a); 會出錯,因為該語句試圖使用類型為 A 的參數:
function foo(x:B) { } foo(a);
此外,下面的語句也會出錯,因為 foo2() 的返回值必須為類型 B:
function foo2():B { return new A(); }
1119
訪問可能未定義的屬性 _(通過靜態類型為 _ 的引用來訪問)。
正在嘗試訪問的屬性對于指定對象不存在。例如,下面的代碼會生成此錯誤,因為 int 對象沒有名為 assortment 的屬性: var i:int = 44; var str:String = i.assortment;
僅當編譯器在嚴格模式下運行時,才會出現這種錯誤。
1120
訪問未定義的屬性 _。
正在試圖訪問未定義的變量。例如,如果尚未定義變量 huh,調用該變量時會生成此錯誤: huh = 55;
只有編譯器在嚴格模式下運行時,才會出現此錯誤。
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 循環中使用的塊) 視為屬于同一個范圍。 下面的代碼示例可以正確地將變量 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++) // 錯誤??trace(x);??for(var x:unit = 11; x < 33; x++) // 錯誤??trace(x) }
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: interface A { public function f(); }; class C implements A,A { public function f() { trace("f"); } }
正確的實現語句應為 class C implements A {。
1168
Illegal assignment to function _.
正 在試圖重新定義函數。例如,下面定義的函數 topLevel() 要輸出“top”一詞。第二個語句會生成錯誤,因為該語句賦給該函數不同的返回值: function topLevel() { trace("top"); } topLevel = function() { trace("replacement works in ~");} // 錯誤
1169
不允許在接口方法中使用命名空間屬性。
1170
函數沒有返回值。
如 果返回類型不是 void,函數中每個可能的控制流都必須返回值。下面的函數 f(x) 不會生成錯誤,因為 if..else 語句總是返回值: function f(x):int { if (x)? ? return 2; else? ? return 3; } // 無錯誤
但是,下面的函數 g(x) 會生成該錯誤,因為 switch 語句并非總是返回值。
function g(x:int):int { switch(x) {? ???case 1: return 1;? ???case 2: return 2: } // return 2;//取消注釋可清除該錯誤 }
只有函數聲明的返回類型不是 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,調用該變量時會生成此錯誤: p.huh = 55;
僅當編譯器在嚴格模式下運行時,才會出現此錯誤。
1203
在基類 _ 中未找到默認構造函數。
如果有 1 個或多個必選參數,則必須使用 super() 語句顯式調用基類的構造函數。
1204
/* 無對應匹配項 */ .
發現了指示注釋開始位置的字符“/*”,但未發現指示注釋塊結束位置的對應字符“*/”。
1009 _“_”沒有類型聲明。 不聲明數據類型是一種個人編碼風格偏好。函數的返回類型、參數或變量沒有類型聲明。但如果使用類型聲明,編譯器就可以編寫出更為有效的代碼并且在編譯時檢測到更多的錯誤。如果要在無法使用類型聲明時得到提示,可以啟用此警告。
1013 類型為 _ 的變量不能為 undefined。比較之前,undefined 值將是強制為 _ 的類型。 只有類型為 * 的變量才能為 undefined。未初始化的變量的默認值是 null(而不是 undefined),但有幾種例外情況。例外包括:Boolean 變量,其默認值為 false。Number 變量的默認值為 NaN;int 或 uint 變量的默認值為 0。
1031 遷移問題:新 _ 的結果將是 _ 的返回值,而不是該函數的新實例。 這是一個代碼遷移警告。在 Actionscript 3.0 和 Actionscript 2.0 中,檢測到的代碼具有不同的行為,如下面的示例所示:
function f(){
??this.b = 22;
??this.a = new Array(2);??
??this.a[0] = 33;
??this.a[1] = 44;
??return a;
??}
??// 在 Actionscript 2.0 中返回 f 的一個新實例,在 Actionscript 3.0 中返回一個由兩個元素組成的新數組
??var d = new f();?? // 此處將出現警告
??trace(d.a);? ? // 在 Actionscript 3.0 中未定義,在 Actionscript 2.0 中為 [33,44]
1035 使用了沒有參數的 Boolean()。 這是一個代碼遷移警告。Boolean() 函數在 Actionscript 3.0 中返回 false,但在 Actionscript 2.0 中返回 undefined。
1039 遷移問題:使用空字符串參數調用 Number('') 函數時,它將在 Actionscript 3.0 中返回 0,而在 Actionscript 2.0 中返回 NaN。 這是一個代碼遷移警告。使用 String 參數調用的 Number() 方法會跳過該字符串中的所有空白,并在檢測不到數字時返回默認值 0。在 Actionscript 2.0 中,該字符串中的任何空白都會導致結果為 NaN。
1045 遷移問題:Null 元素和 undefined 元素的 Array.toString() 處理已更改。 這是一個代碼遷移警告。在 Actionscript 2.0 中,null 數組元素轉換為 null,而 undefined 元素轉換為 undefined。在 Actionscript 3.0 中,null 和 undefined 元素都轉換為空字符串 ''。如果您的代碼分析了 Array 中的 toString() 輸出,您可能需要針對這兩種情況的區別對代碼進行調整。
1059 遷移問題:不再支持屬性 _。_。 這是一個代碼遷移警告。您正在嘗試使用的屬性未存在于 Actionscript 3.0 中。
1061 遷移問題:不再支持方法 _。_。 這是一個代碼遷移警告。Actionscript 3.0 中不存在您正在嘗試使用的方法。
1066 不再支持 __resolve。
1067 遷移問題:不再支持 __resolve。為了獲得類似功能,請使用新的 Proxy 類。 這是一個代碼遷移警告。有關替換 __resolve 的詳細信息,請參閱本語言參考中的 Proxy。
1071 遷移問題:不再支持 _level。有關詳細信息,請參閱 flash.display 包。 這是一個代碼遷移警告。您正在嘗試使用的屬性未存在于 Actionscript 3.0 中。
1073 遷移問題:_ 不是動態類。不能以動態方式向實例中添加成員。 這是一個代碼遷移警告。在 Actionscript 2.0 中,許多類(如 Number)是動態的,這意味著可以在運行時向這些類的實例中添加新屬性。如果代碼嘗試向非動態類的實例中添加屬性,則會產生此警告。
1083 遷移問題:由于 this 關鍵字范圍的變化,方法 _ 在 Actionscript 3.0 中將有不同的行為。有關其它信息,請參閱有關警告 1083 的條目。 這是一個代碼遷移警告。將對象的方法作為值(通常是回調函數)使用時,將會生成此警告。在 Actionscript 2.0 中,在調用函數的上下文中執行函數;在 Actionscript 3.0 中,總是在定義函數的上下文中執行函數。因此,變量和方法的名稱將被解析為回調函數所屬的類,而不是與調用該函數的上下文有關的類,如下面的示例所示:
class a
{
??var x;
??function a() { x = 1; }
??function b() { trace(x); }
}
var A:a = new a();
var f:Function = a.b; // 此處將觸發警告
var x = 22;
f(); // 在 Actionscript 3.0 中輸出 1,在 Actionscript 2.0 中輸出 22
1085 _ 的范圍將是默認命名空間 _ 的內部。它在此包之外不可見。 不聲明命名空間是一種個人編碼風格偏好。如果要在忘記聲明定義的命名空間或訪問說明符時得到提示,可以啟用此警告。如果沒有命名空間或訪問說明符,該定義 對于此文件之外的代碼是不可見的。要使該定義對于此文件之外的代碼是可見的,請使用訪問說明符 public 或命名空間聲明對該定義進行聲明。要使該定義的作用范圍僅限于此文件并避免生成此警告,請將該定義聲明為 private。
1087 遷移問題:Actionscript 3.0 以隨機順序在一條“for x in target”語句之內迭代對象的屬性。 這是一個代碼遷移警告。在 Actionscript 2.0 中,對象屬性的處理順序始終不變。在 Actionscript 3.0 中,該順序是隨機的,可因計算機而異。如果出現意外的排序行為,請檢查此循環,以確定此行為更改是否會影響代碼。
1089 錯誤代碼:_。 這是由于源文件遭到破壞或編譯器代碼中出現錯誤造成的。請與 Adobe, Inc. 聯系,以便將錯誤登記備案。
1091 遷移問題:_ 這是一個代碼遷移警告。在 Actionscript 2.0 中,如果聲明方法時使用的是特殊名稱(如 onMouseDown),那么,在出現特定事件時,Flash 可能會調用該方法。在 Actionscript 3.0 中,必須通過方法來調用 addEventListener(),從而對這一函數進行注冊以接收該事件。有關詳細信息,請參閱本語言參考中的 addEventListener。
1093 在應為 uint(非負)值的地方使用負值。 將負值賦給 uint 數據類型的變量將產生極大的正值。 var x:uint = -1; trace(x); // 4294967295.
1097 與 null 的比較不合邏輯。類型為 _ 的變量不能為 null。 Boolean、int、uint 和 Number 類型的實例不能為 null。與 Boolean 數據類型比較之前,比較運算符類型將 null 轉換成 false;與 Number、int 或 uint 數據類型比較之前,將其轉換成 0。
1099 與 NaN 的比較不合邏輯。此語句始終計算為 false。 NaN 具有獨特的數學屬性,任何涉及該屬性的比較運算都計算為 false。改用全局 isNaN() 函數檢測 NaN 值,如下面的示例所示:
trace(NaN == NaN); // false!
trace(NaN != NaN); // 還是 false!
trace(isNaN(NaN)); // true
1101 條件語句之內的賦值語句。您指的是 == 而不是 = 嗎? = 賦值語句的結果是該 = 語句右邊的值。可以將賦值語句用作條件測試,但不建議這樣做。通常,出現 = 是由于計劃執行 == 相等測試時的鍵入錯誤造成的,如下面的示例所示:
var x:Boolean = false;
var y:Boolean = true;
// 很難確定下面一行是有意將 x 的值設置為 y 的值,還是屬于鍵入錯誤
if (x = y) { trace("x is assigned y's value of true, making the conditional test evaluate as true."); }
1103 使用了 null 值,但是應為 _ 值。 不能將 null 作為值賦給 Boolean、Number、int 和 uint 變量。賦給 Boolean 數據類型時,null 值會隱式轉換為 false,而賦給 int、uint 或 Number 數據類型時會轉換為 0。
1105 尚未指定類 _ 的構造函數。 不指定構造函數是一種個人編碼風格偏好。如果需要始終為類聲明構造函數,可以啟用此警告。此警告旨在幫助您發現類名稱更改但其構造函數名稱沒有更改的情 況。不啟用此警告時此類情況不會被標記為問題,前一個構造函數看上去是一個標準函數。
1111 未初始化該常量。
1113 Array(x) 與新 Array(x) 具有相同的行為。若要將某個值轉換成 Array 類型,請將表達式 x 用作 Array 而非 Array(x)。
1115 輸入此構造函數之前,將會執行 super() 語句。如果要顯式控制 super() 語句的執行時間,請在該構造函數中添加對該語句的調用。 在構造函數中添加對 super() 的調用是一種個人編碼風格偏好。如果需要始終明確 super() 的調用時間,可以啟用此警告。啟用此警告對于打算在某些本地初始化代碼之后調用 super() 但忘記對其進行添加的情況非常有用。
3552 與使用 TextField.appendText() 方法相比,使用 += 將文本追加到 TextField 的效率低很多倍。 有關此重要文本優化操作的詳細信息,請參閱本語言參考中有關 TextField 類的 appendText() 方法的內容。
3554 使用了 Function 值,但是應為類型 _。此函數參考之后可能缺少括號 ()。 在 Actionscript 中,可以將函數本身用作值。此處所述的代碼使用的是 Function 類型的值,但需要的是 Function、Object 或 * 之外的類型。通常,這表示出現函數名稱之后遺漏括號 () 的鍵入錯誤。
3556 不推薦使用 instanceof 運算符,請改用 is 運算符。
3574 遷移錯誤:Actionscript 2.0 XML 類已重命名為 XMLDocument。 這是一個代碼遷移警告。在 Actionscript 3.0 和 Actionscript 2.0 中,XML 是不同的類。Actionscript 3.0 中的 XMLDocument 類與 Actionscript 2.0 中的 XML 類等效。Actionscript 3.0 XML 類通過更為簡便和更加強大的 API 提供了增強的功能。有關其它詳細信息,請參閱《Actionscript 語言參考》中的 XML。
3576 Date(x) 與新的 Date().toString() 具有相同的行為。若要將某個值轉換為 Date 類型,請使用“x as Date”代替 Date(x)。
3582 如果以相同名稱將包導入為當前類,將在此作用域中隱藏該類的標識符。
3584 指定了多個名稱為“_”的參數。對該參數的引用將始終解析為最后一個參數。
3590 使用了非 Boolean 值,但是應為 Boolean 值。
3591 使用了 _,但是應為 Boolean 值。表達式將強制為 Boolean 類型。
3593 _ 不是動態類 _ 的可識別屬性。 在嚴謹的編譯模式下,不會在動態類的實例中檢查未定義屬性。類型 Date、RegExp 和 Error 是動態的,以便向后與 ECMAscript 兼容。此警告在這些類的實例中找到了對未定義屬性的使用。一個常見的問題是嘗試獲取或設置的 Date 值的 year 屬性不存在。正確的屬性名稱是 fullYear。
3595 _ 不是動態類 _ 的可識別方法。 在嚴謹的編譯模式下,不會在動態類的實例中檢查未定義的方法。類型 Date、RegExp 和 Error 是動態的,以便向后與 ECMAscript 兼容。此警告在這些類的實例中找到了對未定義方法的使用。
3597 重復的變量定義。 編譯器檢測到變量的重復定義。這會導致意外的結果。Actionscript 不支持變量的塊級別作用范圍。在函數體內定義的所有變量屬于同一范圍,即便這些變量在 if 語句、while 語句和 for 語句中定義,也是如此。例如,下面的代碼會重新聲明變量 x 兩次:
function test() {
var x:Number = 10;
if (true) {
??for (var x=0; x < 5; x++) // 此處將出現警告,這是 x 的第二次定義
??trace(x);
}
trace(x); // 是 5,而不是 10。由上面的 for 循環設置的最后一個值是 x 的當前值
}
3598 定義的名稱和已導入的包的名稱相同。如果不加限定地引用該名稱,則該名稱將被解析為包而不是定義。
3599 定義的名稱和已導入的包的名稱相同。如果不加限定地引用該名稱,則該名稱將被解析為包而不是定義。 如果某定義的名稱與范圍內的包相同,則對該名稱的任何非限定引用都將解析為該包,而不是解析為該定義。這會在嘗試引用該變量時導致意外的錯誤。為此,必須 限定對該定義的所有引用,以便將其解析為該定義,而不是解析為該包。
3600 可能試圖刪除固定屬性。
3601 不能刪除聲明屬性 _。若要釋放相關內存,請將其值設置為 null。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
