我正在尝试将影片剪辑附加到多个颈背,但我收到以下错误。
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;
}
如果你有任何想法如何解决这个问题,我们将不胜感激。
答案 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;