2012-01-11 65 views
0

我得到了下面的AS3代碼變量ARR1的多個變量聲明一個Flash Builder警告消息:如何在AS3代碼中手動抑制Flash Builder警告消息?

if (var1 == var2) { 
    var arr1:Array = new Array(100); 
    <some code> 
} else { 
    var arr1:Array = new Array(200); 
    <some other code> 
} 

我可以消除這種警告有幾個if/else語句,但代碼運行正常如果警告是可以接受的,我不明白爲什麼我應該增加複雜性。如果你有不同的想法,希望聽到別人的意見。

假設警告是可以忍受的,如何在Flash Builder中手動禁止警告?也就是說,這個例子只是警告;其他警告仍必須顯示。

例如,在Matlab中,可以放置一個特殊的代碼作爲對該問題行的註釋,並且與該行代碼相關的警告將不會顯示。類似於Flash Builder 4.6中可用的那樣?

+0

動作沒有'if'阻止範圍。只有一個名爲'arr1'的變量,它的實際聲明不在你認爲的位置,但是在整個範圍開始執行之前......爲什麼不把聲明放在if之外的幾行呢? – 2012-01-11 17:20:36

回答

3

ActionScript使用變量提升,這意味着所有變量聲明都會移到函數的頂部,因此編譯器在這樣做後會看到同一個變量的兩個聲明。

即使你聲明一個變量是使用它的工作原理之前...

例如這些例子仍然有效在AS3:

// more logical and preffered one 
var arr1:Array; 
if (var1 == var2) { 
    arr1 = new Array(100); 
    <some code> 
} else { 
    arr1 = new Array(200); 
    <some other code> 
} 


if (var1 == var2) { 
    var arr1:Array = new Array(100); 
    <some code> 
} else { 
    arr1 = new Array(200); 
    <some other code> 
} 


if (var1 == var2) { 
    arr1 = new Array(100); 
    <some code> 
} else { 
    var arr1:Array = new Array(200); 
    <some other code> 
} 


if (var1 == var2) { 
    arr1 = new Array(100); 
    <some code> 
} else { 
    arr1 = new Array(200); 
    <some other code> 
} 
var arr1:Array; 
+0

太棒了。你提供的第一個例子將適用於我。我沒有意識到數組長度可以在聲明語句的外部*初始化。非常感謝帕特里克! – ggkmath 2012-01-11 17:44:10