我有一個關於Flash錯誤1151的奇怪問題:內部命名空間中的定義i存在衝突。for循環中的Flash錯誤1151
這裏是有問題的代碼:
for(var i:Number=dt.getFullYear(); i >= dt.getFullYear()-90; i--)
{
dtYear.addItem({label:i, data:i});
} //for
//-*-*-* Month
for(var i:Number=0; i < months.length; i++)
{
dtMonth.addItem({label:i, data:i});
} //for
還是比較明顯的例子:
for(var i:Number=0; i < 12; i++)
{
trace(i);
} //for
//-*-*-* Month
for(var i:Number=0; i < 12; i++)
{
} //for
的Adobe給出瞭解釋:
You cannot declare more than one variable with the same identifier name within the same scope unless all such variables are declared to be of the same type. In ActionScript 3.0, different code blocks (such as those used in two for loops in the same function definition) are considered to be in the same scope.
該受詛咒這到底是什麼?我的意思是i變量一直存在爲一個數字,作爲一個數字進行了類型化,爲什麼上面的代碼會失敗?
如果我以這種方式修改它,它可以工作,但這是UGLY和爲什麼這是需要的? AAARGGGHHHH ... Flash開發讓我發瘋。給我一把槍:)。有人向我解釋這一個請。
工作代碼:
for(var i:Number=dt.getFullYear(); i >= dt.getFullYear()-90; i--)
{
dtYear.addItem({label:i, data:i});
} //for
//-*-*-* Month
for(i=0; i < months.length; i++)
{
dtMonth.addItem({label:i, data:i});
} //for
那麼Flash/AS3從來沒有一個用戶友好的語言/用戶界面:)。多麼愚蠢的行爲:(((。謝謝。 – Jauzsika 2010-07-25 19:31:23