AS3#1034:类型强制失败:无法转换为flash.display.DisplayObject

时间:2014-01-31 04:33:42

标签: actionscript-3 flash

我正在AS3中制作一个Flash赛车游戏,玩家可以通过标有锥体的球场进行导航。视锥和汽车包含在电影剪辑'gamesprite'中。我为锥体创建了一个数组,以检查汽车和每个锥体之间的碰撞。

public var cones:Array;

public function findCones() 
    {
        cones = new Array();
        for(var i=0;i<gamesprite.numChildren;i++)
        {
            var mc = gamesprite.getChildAt(i);
            if (mc is Cone) 
            {
                cones.push(Cone);
                trace(cones);
            }
        }
    }

稍后在我的游戏循环函数中,我要检查gamesprite.car影片剪辑与数组中每个圆锥体之间的碰撞。

        for(var j:Number=0;j<cones.length;j++)
            {
                if (gamesprite.car.hitTestObject (cones[j]))
                {
                    trace("cones and car colliding");
                }
            }

我在测试游戏时收到此错误。

TypeError:错误#1034:类型强制失败:无法将Cone $转换为flash.display.DisplayObject。     在Racing / gameLoop()

我可能错过了一些简单但却无法解决的问题。

1 个答案:

答案 0 :(得分:0)

你正在向你的数组推送一个错误的东西。你有cones.push(Cone);,但你应该cones.push(mc);