As3以编程方式添加了动画片段(没有实例名称)进行测试

时间:2014-03-01 12:31:59

标签: actionscript-3 dynamic multiple-instances hittest addchild

我有一个主类,我可以在舞台上添加墙。

以前,我将此声明为

public var wall_cubular_1:Wall_cubular_1 = new Wall_cubular_1();

然后像这样添加

addChild(wall_cubular_1);

然后在角色类(应该测试墙壁)中我有以下

wallHit = this.hitTestObject(_root.wall_cubular_1)

然而,这意味着我只能在主要课程中一次放置一面墙,因为每次我添加一个新墙,旧的一个刚刚消失,新的一个被放置。好像我换了它。

所以我改变了主类,删除了墙的公共变量,而是让它像这样设置

var wall_cubular_1:Wall_cubular_1 = new Wall_cubular_1();
addChild(wall_cubular_1);

在添加墙壁的功能中。

现在角色无法对墙壁进行测试,因为它不公开。所以我尝试将hittest更改为

wallHit = this.hitTestObject(stage.wall_cubular_1)

但它不起作用!

我完全迷失了。我该如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:0)

在您的character课程中,Dispatch Event可以wallHit这样说{/ 1}},

dispatchEvent(new Event("wallHit"));

在你的主要课程中,

(我假设您正在character类中创建实例Main类。 (另外,您需要在wallHit类中创建Main的实例)。

characterClassInstance.addEventListener("wallHit", onWallHit);

private function onWallHit(e:Event):void
{
     //Here you can add your collision detection logic
     wallHit = this.hitTestObject(_root.wall_cubular_1);
}