if (goblin.hitTestPoint(character.aMode.lance.x, character.aMode.lance.x, true))
{
trace("goblin been hit, please minus one life");
}
这是代码,错误是:
1119: Access of possibly undefined property aMode through a reference with static type player.
这是我设置代码的方式
public static var character:player;
character = new player;
container.addChild(character);
字符被动态添加到容器中。在字符中有四个帧,第三个帧包含一个movieclip,它在实例名称中称为“aMode”。在影片剪辑中,还有另一个名为Lance的动画片段,实例名称为“lance”。
在As2中,我确信这会奏效。
我认为问题在于,因为aMode不在第一帧,所以character.aMode(应该在第一帧中)才能使它工作。
或者它可能没有添加到显示列表中,但是flash会自动将它添加到显示列表中,对吗?
抱歉,如果太多了。
这是一张视觉辅助图片。 你可以看到这个aMode movievlip位于角色movieclip中的一个不同的框架中(动态添加)
答案 0 :(得分:1)
在As2中,我确信这样可行。 在AS2中,你可能会得到一个未定义的,它将被忽略。
如果您的剪辑(在这种情况下是播放器)在没有特定资产/属性的帧上停止,则会抛出该错误。这样就足够了:
if (character.aMode && goblin.hitTestPoint(character.aMode.lance.x, character.aMode.lance.x, true))...