2011-08-19 69 views
0

由於某種原因即時得到以下誤差的值的Flash隱式強制值錯誤?

隱含性脅迫形成的靜止型flash.display使用:的DisplayObject可能無關的類型flash.display使用:MovieClip的

線錯誤指向的是「addInfoBubble(item)」

for(var i:Number=0; i < MapContainer.numChildren; i++) { 
    var item:DisplayObject = MapContainer.getChildAt(i); 
    if(item!=null && item is MovieClip){ // make sure its a movieclip 
     trace('Found movieclip'); 
     addInfoBubble(item); 
     item.addEventListener(MouseEvent.MOUSE_OVER, countryMouseOver); 
     item.addEventListener(MouseEvent.MOUSE_OUT, countryMouseOut); 
    } 

} 

回答

5

即使您確定它是MovieClip,編譯器也不知道這一點。該變量需要輸入爲MovieClip。

改變這兩條線:

var item:DisplayObject = MapContainer.getChildAt(i); 
if(item!=null && item is MovieClip){ // make sure its a movieclip 

var item:MovieClip = MapContainer.getChildAt(i) as MovieClip; 
if(item){ 
+0

嗨肖恩感謝堆,所以我想 「MapContainer.getChildAt(I)爲影片剪輯」 確實,只有檢索類型影片剪輯的孩子嗎? – htmlr

+1

是的,如果左操作數不是右操作數的實例,則'as'運算符返回'null'。所以,如果if語句不是MovieClip,它將被跳過。 –

+0

太棒了!感謝您使用AS 3學習新東西:) – htmlr