0

我在尝试编辑容器精灵内的 MovieClip 类实例中的变量值时遇到问题。

电影剪辑都是精灵“容器”的孩子,但是当我尝试container.getChildAt(i).variable = value;在 for 循环中循环它们时,我得到了错误-

Scene 1, Layer 'AS', Frame 1, Line 87   1119: Access of possibly undefined property name_ through a reference with static type flash.display:DisplayObject.

如何编辑这些变量?出了什么问题?

4

1 回答 1

3

最有可能的问题是 getChildAt() 返回了一个 DisplayObject。DisplayObject 不是动态类,这意味着您不能随意创建和访问变量。另一方面,MovieClip 是一个动态类,因此您可以在尝试时创建和访问任意变量。问题是,即使知道您正在访问的对象是一个 MovieClip,Flash 也不知道这一点,并将您限制为 DisplayObject 的功能,如前所述,这是 getChildAt() 返回的内容。

为了解决这个问题,您必须明确让 Flash 知道您正在处理的对象是一个 MovieClip。这是通过所谓的铸造完成的:

MovieClip(container.getChildAt(i)).variable = value;

由于您现在已经让 Flash 知道该对象将是一个 MovieClip,因此您可以利用 MovieClip 是一个动态类这一事实并访问您的变量。

于 2012-08-16T02:39:05.263 回答