hitTestObject 在 actionscript 中不工作 class

hitTestObject is not working in actionscript class

我正在尝试测试 .as 文件中定义的子弹是否接触到 .fla 文件中定义的播放器。

我的 .fla 文件中有这个 if 语句

if (spaceBarPressed == true) {
    var eb = new EnemyBullet(player)
    stage.addChild(eb)
    eb.x = enemy.x + 120
    eb.y = enemy.y + 120
}

这在我的 .as 文件中

public function EnemyBullet(player) {
    addEventListener(Event.ENTER_FRAME, update)
    if (this.hitTestObject(player)) {
        trace("hit")
    }
}
function update(event:Event) {
    this.x+=5
}

但我似乎无法让它工作。

我通过将对象播放器发送到 class 中的函数 EnemyBullet 来修复它,并将其存储在 DisplayObject 类型的变量中以在函数更新中引用它。

.fla文件中if语句的内容:

if (spaceBarPressed == true) {
    var eb = new EnemyBullet(player)
    stage.addChild(eb)
    eb.x = enemy.x + 120
    eb.y = enemy.y + 120
}

.as 文件的内容

package  {
    
    import flash.display.MovieClip;
    import flash.display.DisplayObject;
    import flash.events.Event   
    
    public class EnemyBullet extends MovieClip {
        var $thing:DisplayObject
        
        public function EnemyBullet($testObject:DisplayObject) {
            $thing = $testObject
            addEventListener(Event.ENTER_FRAME, update)
        }
        function update(e:Event) {
            this.x+=5
            if ($thing.hitTestObject(this) ) {
                trace("HIT")
            }
        }

    }
    
}