Flash隐式强制价值错误?

htm*_*mlr 0 actionscript-3 flash-cs5

由于某种原因我得到以下错误

使用静态类型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);
    } 

}
Run Code Online (Sandbox Code Playgroud)

Sea*_*ara 5

即使你确定它是一个MovieClip,编译器也不知道.该变量需要输入为MovieClip.

改变这两行:

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

var item:MovieClip = MapContainer.getChildAt(i) as MovieClip;
if(item){
Run Code Online (Sandbox Code Playgroud)