2014-04-08 25 views
0

我正在使用Flash CC。 我使用矩形工具绘制了7个矩形。 然后,我将7作为一个影片剪辑(按F8)。迭代形状children - Flash/as3

问题: 我希望能够遍历这些形状并逐个移动每个形状。 然而,这7个矩形似乎被封装成ONE形状,我无法访问它们。 如果我在影片剪辑上使用.numChildren,它将返回1. 如果我使用.getChildAt(“anything> 0”),它将返回一个空引用异常。

请帮忙, 我不明白这是如此困难。

我已经搜索了年龄,找到解决方案,并为我的生活,我不能。 在此先感谢。

(P.s)在代码中实例化矩形工作,但我需要能够通过Flash CC执行此操作,因为我将导入用于操作的艺术家材质。

回答

0

您的最佳选择是将制作的影片剪辑中的每个形状都制作为影片剪辑。 在Flash中进入您制作的MovieClip(我将其称为containerMC以便于理解),并通过按F8将每个形状设为MovieClip。你也可以给他们实例名称,如果你愿意,只要确保它们是唯一的。

然后你的容器MC将返回numChildren的值7在你的情况。 您可以通过getChildAt()或使用您通过containerMC.instance1或containerMC [“instance1”]提供的实例名移动/访问containerMC中的形状。

+0

这可能是我正在寻找的答案,,,我不再工作了,所以我会在早上检查一下。 我认为某种配料过程正在进行优化/支持屏幕上的所有图形? 如果我将所有这些转换为影片剪辑,您是否认为这会影响性能? 再次感谢! – Zze

+0

不会有明显的性能差异,因为使它成为一个movieClip只会添加几百个字节(如果你使它成为一个Sprite,如果它没有动画但是想保持交互性,则更少)。 Flash在优化事情方面做得不好,所以最后你还是需要测试它,但我不明白它会是什么瓶颈。它更多的是关于如何处理图形,最后你可以让它们成为Bitmaps或使用copyPixels()来实现最佳性能。如果你想使用GPU进行渲染,无论如何你可能需要使用Starling。 –

+0

关于第二个想法,这可能不会起作用,因为我只能将代码中的所有这些形状更改为电影剪辑,就像我正在处理的项目一样,如果不是更多... – Zze