2014-03-01 57 views
0

我有一個主要類,我有功能可以在舞臺上添加牆。As3命中測試以編程方式添加影片剪輯(無實例名稱)

以前,我宣佈這是

public var wall_cubular_1:Wall_cubular_1 = new Wall_cubular_1(); 

,然後添加像這樣

addChild(wall_cubular_1); 

然後在字符類(假設到的HitTest牆)我有以下

wallHit = this.hitTestObject(_root.wall_cubular_1) 

但是,這意味着我只能從主類si一次放置一個牆每當我添加一個新的,舊的就消失了,新的就被放置了。好像我取代了它。

所以我改變了主類,移除壁的公共變種,而是有它建立這樣

var wall_cubular_1:Wall_cubular_1 = new Wall_cubular_1(); 
addChild(wall_cubular_1); 
在其中增加了城牆的功能

現在角色不能測試牆壁,因爲它不是公開的。所以我試圖改變這種衝擊

wallHit = this.hitTestObject(stage.wall_cubular_1) 

但它不起作用!

我完全失去了。我該如何解決?

感謝

回答

0

在你,character類,你可以Dispatch EventwallHit像這樣,

dispatchEvent(new Event("wallHit"));

在主類,

(我假設你正在創建實例character類在Main類)。 (另外,您需要在Main類中創建wallHit的實例)。

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); 
}