Actionscript 3 flash as3 hitdetection功能触发其他功能

Actionscript 3 flash as3 hitdetection功能触发其他功能,actionscript-3,flash,actionscript,flash-cs5,flash-cs4,Actionscript 3,Flash,Actionscript,Flash Cs5,Flash Cs4,我正在尝试编写一个脚本,其中一个电影剪辑掉了一根绳子,抓住了鱼,如果它碰到绳子,鱼就会跟着它。问题是,我使用hitTestObject来检测碰撞。当然,问题是当它触摸时我触发了这个功能,但是一旦它没有触摸到移动的功能,电影就开始了,所以基本上鱼会上升几秒钟,然后又开始直线移动 为了解决这个问题,我尝试创建一个布尔变量,该变量根据命中率变化为真或假,从而使movieclip移动,但也不起作用,因为一旦一个mc不接触另一个mc,它就会从真变为假或从1变为0。尝试了这两种方法(如布尔变量和数字变量)。

我正在尝试编写一个脚本,其中一个电影剪辑掉了一根绳子,抓住了鱼,如果它碰到绳子,鱼就会跟着它。问题是,我使用hitTestObject来检测碰撞。当然,问题是当它触摸时我触发了这个功能,但是一旦它没有触摸到移动的功能,电影就开始了,所以基本上鱼会上升几秒钟,然后又开始直线移动

为了解决这个问题,我尝试创建一个布尔变量,该变量根据命中率变化为真或假,从而使movieclip移动,但也不起作用,因为一旦一个mc不接触另一个mc,它就会从真变为假或从1变为0。尝试了这两种方法(如布尔变量和数字变量)。如果能给我任何帮助或帮助我走上正确的方向,我们将不胜感激。多谢各位

// fish capture code
this.addEventListener(Event.ENTER_FRAME,handleCollision);

function handleCollision(e:Event):void
{

    if (ropeHit.hitTestObject(fishy_1_a))
    {
        stopFish1();
        trace(movefish1);
    }
    else
    {
        moveFish1();
    }
}



//code enemy fishy 

//fish 1 A
    function moveFish1()
    {
        if (fishy_1_a.x < 800)
        {
            fishy_1_a.x +=  xSpeed;
        }
        else if (fishy_1_a.x >= 800)
        {
            fishy_1_a.x = -100;
        }
    }

    function stopFish1()
    {
        fishy_1_a.y -=  xSpeed;
    }
//鱼类捕获代码
this.addEventListener(事件输入帧,handleCollision);
函数handleCollision(e:事件):void
{
if(ropeHit.hitTestObject(fishy_1_a))
{
stopFish1();
微量元素(1);
}
其他的
{
moveFish1();
}
}
//暗号敌人可疑
//鱼1 A
函数moveFish1()
{
如果(鱼腥_1_a.x<800)
{
fishy_1_a.x+=x速度;
}
else if(鱼腥1_a.x>=800)
{
鱼腥味1_a.x=-100;
}
}
函数stopFish1()
{
fishy_1_a.y-=x速度;
}

定义一些可以测试的标志:

function handleCollision(e:Event):void {
    //Check if fishy is caught
    if (!fishy_1_a.catched && ropeHit.hitTestObject(fishy_1_a)) {
        //Change flag
        fishy_1_a.catched = true;
        trace("Gotcha!");
    } 

    if (fishy_1_a.catched) {
        stopFish1();
    }else {
        moveFish1();
    }
}

非常感谢,这么简单的答案我想不出来。