首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用MC目标对数组的MC项进行hitTestObject?

如何使用MC目标对数组的MC项进行hitTestObject?
EN

Stack Overflow用户
提问于 2013-02-16 23:57:04
回答 2查看 2.3K关注 0票数 0

我有一个数组中的项目,每个项目都是一个电影剪辑,它以1秒的延迟间隔播放,目标电影剪辑(carTarget)由箭头键控制,目的是避免与阵列项目(obstacleArrayi)发生冲突。我一直在尝试创建一条hitTestObject语句,以便在发生冲突时进行通知。然而,我收到了一些错误,比如参数hitTestObject,大多数是非空的,并且不知道如何解决它。

代码语言:javascript
复制
//obstacles
function randomSort(a:*, b:*):Number
{
    if (Math.random() < 0.5) return -1;
    else return 1;
}
var obstacleArray:Array = [obstacleCar,obstacleCar2,obstacleCar3];
obstacleArray.sort(randomSort);

trace(obstacleArray);
trace(obstacleArray.length);

//OBSTACLE START DELAY
var timerPlay:Timer = new Timer(1000,1);
timerPlay.addEventListener(TimerEvent.TIMER, ontimerPlay);
timerPlay.start();

var i:int = 0;
var timerDelay:Timer = new Timer(1000, 3);
function ontimerPlay(evt:TimerEvent):void{

    obstacleArray[i].addEventListener(Event.ENTER_FRAME,checkHitTest);    
    //FOR EACH OBSTACLE
    timerDelay.addEventListener(TimerEvent.TIMER, ontimerDelay);
    timerDelay.start();
}

function checkHitTest(event:Event):void{
        if(carTarget.hitTestObject(obstacleArray[i]))
        {
            trace("HIT!");
        }
}

function ontimerDelay(evt:TimerEvent):void{
    obstacleArray[i].play();
    trace(obstacleArray[i]);
    i++;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-17 07:17:16

最有可能的是,问题出在这段代码中:

代码语言:javascript
复制
function checkHitTest(event:Event):void{
        if(carTarget.hitTestObject(obstacleArray[i]))
        {
            trace("HIT!");
        }
}

在我更改计时器调用后,obstacleArrayi将为null或更糟-您需要检查的对象之外的另一个对象。

您应该将其更改为:

代码语言:javascript
复制
function checkHitTest(event:Event):void{
        if(carTarget.hitTestObject(event.target))
        {
            trace("HIT!");
        }
}

event.target将从Enterframe事件中获取调用checkHitTest的当前障碍

票数 0
EN

Stack Overflow用户

发布于 2013-02-17 00:43:42

在您尝试使用hitTestObject时,它很可能并不存在。从您共享的代码中,我看不到您在代码中创建它的位置。因此,假设carTarget是舞台上的一个对象,并且当您想要使用它-assuming这些东西时,它具有初始化的属性或对象hitTestObject,那么您需要确保当此代码运行时,该对象仍然存在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14912170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档