下列是編譯器在遇到無效程式碼時產生的編譯錯誤清單。這些錯誤的子集只有在嚴謹模式編譯程式碼時才會偵測到。嚴謹模式新增了標準語言中所沒有的三個限制:


 程式碼訊息說明
 1000_ 的模稜兩可參照。 可能參照了一個以上的項目。例如,下列使用名稱空間 rssxml,這兩個名稱空間各為 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存取指定字不允許有名稱空間特質。 您不能在定義中同時使用存取規範 (如 private 或 public) 和名稱空間特質。
 1004找不到名稱空間,或者名稱空間不是編譯階段常數。 名稱空間為未知,或是可能在執行階段具有不同值的運算式。請確認名稱空間的拼字正確,並且已正確匯入它的定義。
 1006super 運算式只能用在類別實體方法中。 
 1007super 陳述式只能用在類別實體建構函式中。 您不能在靜態成員中使用 super 陳述式。您只能在類別實體中使用 super 陳述式。
 1008特質無效。 
 1010override 特質只能用在類別屬性定義中。 您不能在函數區塊內使用 override 關鍵字。
 1011virtual 特質只能用在類別屬性定義中。 當您宣告不屬於類別的屬性時 (例如,在函數區塊內宣告變數),便無法使用 virtual 特質。
 1012static 特質只能用在類別中的定義。 
 1013private 特質只能用在類別屬性定義中¡C 
 1014不再支援 intrinsic 特質。 ActionScript 3.0 不支援 intrinsic 關鍵字。
 1016基底類別為 final。 無法擴充父類別,因為它被標記為 final
 1017找不到基底類別 _ 的定義。 
 1018重製類別定義:_。 
 1020標記為 override 的方法必須覆寫另一個方法。 
 1021重製函數定義。 您不能在相同範圍內宣告一個以上具有相同識別名稱的函數。
 1022無法覆寫 final 存取子。 
 1023不相容的覆寫。 標記為 override 的函數必須完全符合所要覆寫之函數的參數和傳回類型宣告。它必須具有相同數量的參數、相同的類型,並宣告相同的傳回類型。如果有任何選擇性的參數,也必須相符。兩種函數也都必須使用相同的存取規範 (public、private 等) 或名稱空間特質。
 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不支援虛擬變數。 
 1034變數不可以是原生。 
 1035變數不可以同時為 final 和 virtual。 
 1037套件不可以是巢狀。 
 1038找不到 break 陳述式的目標。 
 1039找不到 continue 陳述式的目標。 
 1040重製標籤定義。 
 1041無法呼叫特質。 
 1042關鍵字 this 不可以用在靜態方法中。它只能用在實體方法、函數結束項和全域程式碼中。 您不可以在靜態成員中使用 this 關鍵字,因為 this 可能沒有內容。
 1043未定義的名稱空間。 
 1044介面方法 _ (命名空間 _ 內) 未由類別 _ 實作。 
 1045找不到介面 _。 
 1046找不到類型,或者類型不是編譯階段常數:_。 作為類型宣告的類別為未知,或是可能在執行階段具有不同值的運算式。請確認您匯入正確的類別,並且套件位置從沒變更過。此外,請確認包含程式碼 (不是匯入的類別) 的套件已正確地定義 (例如,請確認使用適當的 ActionScript 3.0 套件語法,而不是 ActionScript 2.0 語法)。

如果要參照的類別不是在作用中或定義為 public 的名稱空間中定義的,也會發生錯誤:

public class Foo{}

如果您正再使用 Flex™ Builder™ 2 與元件庫內的類別,請確認設定專案的類別路徑。

 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常數初始設定式為未知,或者不是編譯階段常數。 用來初始化常數的值為未定義,或者可能在執行階段具有不同的值。請確認初始設定式的拼字正確,並且初始設定式的值不是會在執行階段中造成不同可能值的運算式。
 1053存取子類型必須相符。 
 1054setter 定義的傳回類型必須為未指定,或是 void。 您無法為 setter 函數指定傳回值。例如,下列為無效:
public function set gamma(g:Number):Number;

下列「是」有效的:

public function set gamma(g:Number):void;
 1058這個屬性是唯寫的。 
 1059這個屬性是唯讀的。 這個屬性是透過 getter 函數來定義,讓您可以擷取該屬性的值。然而,這個屬性沒有定義的 setter 函數,因此為唯讀。

在下列範例中,第三行會產生錯誤,因為 xx 沒有定義的 setter 函數:

class D { function get xx() { return 22; } }
var d:D = new D();
d.xx = 44; // error, property is read-only
 1061呼叫可能未定義的方法 _ (透過含有靜態類型 _ 的參照)。 您正呼叫未定義的方法。
 1063無法開啟檔案:_。 
 1064無效的中繼資料。 此中繼資料無法辨識。
 1065中繼資料特質不可以具有一個以上的元素。 
 1067類型 _ 至不相關類型 _ 之值的隱含強制。 您嘗試將物件轉換 (Cast) 成它無法轉換 (Convert) 的類型。如果您要轉換 (Cast) 的類別不在所要轉換 (Cast) 之物件的繼承鏈中,就會發生這個情形。只有當編譯器以嚴謹模式執行時,才會發生這個錯誤。
 1068無法開啟包含的檔案:_。 
 1069語法錯誤:應為定義或指令。 請檢查此行的語法。
 1071語法錯誤:_ 特質後面應為定義關鍵字 (例如函數),而非 _。 如果作者忘記在宣告中使用 "var" 或 "function" 關鍵字,就會發生這個錯誤。
public int z;// should be 'public var z:int;'
當編譯器遇到未預期的字元時,可能也會發生這個錯誤。例如,下列 trace() 函數的用法無效,因為少了括號 (正確的語法是 trace("hello")):
import flash.utils.trace;
trace "hello"
 1072語法錯誤:名稱空間前面應為 xml。 正確的陳述式語法是 default xml namespace = ns。可能是遺失了關鍵字 xml (注意小寫),或者使用了不正確的關鍵字。如需詳細資訊,請參閱 default xml namespace 指令。
 1073語法錯誤:應為 catch 或 finally 子句。 
 1075語法錯誤:如果沒有 'in' 運算子,就不允許使用關鍵字 'each'。 
 1076語法錯誤:識別名稱前面應為左括號。 
 1077應為 CaseLabel。 此時,編譯器預期會在 switch 區塊中遇到 case 陳述式。此 switch 區塊不正確地在第一個 case 陳述式前面加入對 print 的呼叫:
switch(x)
{
trace(2);
case 0:  trace(0); 
break
}
 1078標籤必須是簡單的識別名稱。 
 1079super 運算式必須具有一個運算元。 
 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無法刪除 super 後代。 
 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 { }
 1114public 特質只能用在套件中。 
 1115internal 特質只能用在套件中。 
 1116使用者定義的名稱空間特質只能用在類別定義的最上層。 
 1118靜態類型 _ 至可能不相關類型 _ 之值的隱含強制。 您正在使用的值不屬於預期的類型,並且沒有隱含強制可將它轉換為預期的類型。

或許您正在使用的父類型預期必須是子類型。例如:

class A {}
var a:A = new A(); 
class B extends A { function f() }
var b : B = a // error

最後一個陳述式會產生錯誤,因為它嘗試將類型 A 的物件指定給類型 B 的變數。

同樣地,下列陳述式會定義需要類型 B 的參數的 foo() 函數。 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;
只有當編譯器以嚴謹模式執行時,才會發生這個錯誤。
 1121getter 定義不能有參數。 
 1122setter 定義必須剛好有一個參數。 
 1123setter 定義不能含有選擇性參數。 
 1124getter 定義的傳回值不可以是 void。 getter 函數會模擬變數。由於變數的類型不可以是 void,因此,您無法將 getter 函數宣告為傳回類型 void。
 1125在介面中定義的方法不能有主體。 
 1126函數沒有主體。 
 1127多次指定了特質 _。 您在同一個陳述式中多次指定了特質。例如,陳述式 public static public var x; 會產生這個錯誤,因為它已兩次將變數 x 指定為 public。請刪除重製宣告。
 1129重製介面定義:_。 請變更或刪除重製定義。
 1130建構函式不能指定傳回類型。 
 1131類別不可以是巢狀。 
 1132特質 final 只能用在類別中所定義的方法上。 
 1133native 特質只能與函數定義搭配使用。 
 1134dynamic 特質只能與類別定義搭配使用。 
 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介面只能擴充其它介面,但 _ 為類別。 您嘗試將介面擴充為類別。介面只能擴充其它 介面。
 1143override 特質只能用在類別中所定義的方法上。 
 1144介面方法 _ (名稱空間 _ 內) 是使用類別 _ 中不相容的使用方式實作。 方法的使用方式必須完全相符。
 1145原生方法不能有主體。 您不能使用 native,因為這是保留的關鍵字。
 1146建構函式不可以是 getter 或 setter 方法。 
 1147未指定 AS 來源檔案。 
 1149傳回陳述式不能用在靜態初始化程式碼中。 
 1150protected 特質只能用在類別屬性定義中。 
 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++) // error
	trace(x);
	for(var x:unit = 11; x < 33; x++) // error
	trace(x)
}
 1152 與繼承而來的定義 _ (名稱空間 _ 內) 一同存在的衝突。 
 1153建構函式只能宣告為 public。 
 1154在定義中,只能指定 public、private、protected 或 internal 這四種中的一種。 
 1155存取子不能以巢狀方式放在其它函數內部。 
 1156介面不能使用新的運算子來實體化。 
 1157介面成員不能宣告為 public、private、protected 或 internal。 
 1158語法錯誤:函數主體前面少了左大括弧 ({)。 
 1159傳回陳述式不能用在套件初始化程式碼中。 
 1160native 特質不能用在介面定義中。 您不能使用 native,因為這是保留的關鍵字。
 1162每個定義只能使用一個名稱空間特質。 
 1163方法 _ 與從介面 _ 繼承而來的定義產生衝突。 
 1165Interface 特質 _ 無效。 
 1166介面中不允許名稱空間宣告。 
 1167類別 _ 多次實作介面 _。 類別多次實作相同的介面。例如,下列會產生這個錯誤,因為類別 C 實作介面 A 兩次:
interface A {  public function f();  };
class C implements A,A {
public function f() { trace("f"); }
}

正確的實作陳述式應為 class C implements A {

 1168函數 _ 的不合法指定。 您嘗試重新定義函數。例如,下列陳述式會定義函數 topLevel() 來列印 "top" 一字。第二個陳述式會產生錯誤,因為它將不同的傳回值指定給函數:
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名稱空間初始設定式必須是字串常值或其它名稱空間。 
 1172找不到定義 _。 
 1173標籤定義無效。 
 1176靜態類型 _ 的值與可能不相關類型 _ 的值之間的比較。 此錯誤是在嚴謹模式中啟用。
 1177傳回陳述式不能用在全域初始化程式碼中。 
 1178嘗試存取無法存取的屬性 _ (透過含有靜態類型 _ 的參照)。 
 1180呼叫可能未定義的方法 _。 只有當編譯器以嚴謹模式執行時,才會發生這個錯誤。
 1181基底類別 _ 的向前參照。 
 1182套件不可以當作值:_。 
 1184類型 _ 的不相容預設值,應為 _。 
 1185switch 具有一個以上的預設值,但只允許一個預設值。 
 1188類別 _ 的不合法指定。 
 1189嘗試刪除固定屬性 _。只能刪除動態定義的屬性。 刪除即會從物件中移除動態定義的屬性。類別的宣告屬性無法刪除。只有當編譯器以嚴謹模式執行時,才會發生這個錯誤。
 1190找不到基底類別,或者基底類別不是編譯階段常數。 
 1191找不到介面,或者介面不是編譯階段常數。 
 1192名稱空間定義不允許 static 特質。 
 1193介面定義不能以巢狀方式放在類別或其它介面定義中。 
 1194prototype 特質無效。 
 1195嘗試存取無法存取的方法 _ (透過含有靜態類型 _ 的參照)。 您從其它類別呼叫私有方法,或是在未使用的名稱空間中呼叫定義的方法。如果您要在未使用的名稱空間中呼叫定義的方法,請為所需的名稱空間新增 use 陳述式。
 1196語法錯誤:擲出後應有運算式。 
 1197類別 _ 無法擴充 _,因為兩者都與元件庫元件或主要時間軸相關聯。 
 1198套件定義中不允許特質。 
 1199內部錯誤:_。 
 1200語法錯誤:for-in 初始設定式無效,應只有一個運算式。 
 1201this、super、return 或 throw 陳述式後面不可以出現 super 陳述式。 
 1202存取未定義的屬性 _ (位於套件 _ 中)。 您嘗試存取套件中未定義的變數。例如,如果變數 p.huh 尚未定義,呼叫該變數便會產生此錯誤:
p.huh = 55;
只有當編譯器以嚴謹模式執行時,才會發生這個錯誤。
 1203基底類別 _ 中沒有預設的建構函式 您必須明確的呼叫具有 super() 陳述式的基底類型之建構函數 (如果此函數具有一個或以上所需的引數)。
 1204找到 /*,但沒有對應的 */。 找到 '/*' 字元,此字元為註解的起始點,找不到表示註解結尾的相對應之 '*/' 字元。


 

有新的意見加入至這個頁面時,傳送電子郵件給我 | 意見報告

目前頁面: http://livedocs.adobe.com/flash/9.0_tw/ActionScriptLangRefV3/compilerErrors.html