颈背物理将影片剪辑附加到多个颈背体上。隐含的强制错误

时间:2013-03-21 15:17:39

标签: actionscript-3 movieclip flash-cs6 physics-engine

我正在尝试将影片剪辑附加到多个颈背,但我收到以下错误。

Line 118    1067: 
Implicit coercion of a value of type flash.display:MovieClip 
to an unrelated type nape.shape:Shape.

这是代码块:

for (var i:int = 0; i < 10; i++)
{
     var brick:Body= new Body(BodyType.DYNAMIC);
     var brickShape:Polygon = new Polygon(Polygon.box(10,30));
     brick.position.setxy(500, ((h ) - 32 * (i + 0.5)));
     var brickMovieClip:MovieClip = new Brick();
     brickMovieClip.width = 10;
     brickMovieClip.height = 30;
     addChild(brickMovieClip);
     brick.shapes.add(brickMovieClip);              
     brick.space = space;
    brick.shapes.at(0).material.elasticity = .1;            
}

如果你有任何想法如何解决这个问题,我们将不胜感激。

1 个答案:

答案 0 :(得分:3)

Body的shapes属性是nape.shape.Shape的列表,而不是MovieClip,你应该将brickShape添加到body的形状列表中,而不是Movieclip。

Nape本身与图形无关,它取决于你的每一帧,根据物理对象状态将与身体相关的grapihc移动到正确的位置/旋转。

您可以做的是将movieclip存储在正文的userData字段中,以便以后可以在以后轻松访问它,如:

body.userData.graphic = brickMovieClip;

然后每个帧都可以更新图形,如:

var mc:MovieClip = body.userData.graphic;
mc.x = body.position.x;
mc.y = body.position.y;
mc.rotation = body.rotation * 180 / Math.PI;