Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 一个程序中的范围错误,但在另一个程序中工作正常_Actionscript 3_Flash - Fatal编程技术网

Actionscript 3 一个程序中的范围错误,但在另一个程序中工作正常

Actionscript 3 一个程序中的范围错误,但在另一个程序中工作正常,actionscript-3,flash,Actionscript 3,Flash,我是个新手,如果答案很明显的话,我很抱歉。基本上我有一个名为testing Stuff的程序,它是由其他人制作的,你可以从一个电影剪辑中画出多个孩子,效果很好。 然而,另一个,我移植和修改了代码,给了我一个错误 RangeError:Error#1125:索引-1超出范围13。 在佛罗里达州jocAmare2_::main timeline/endDragIt() 我们将非常感谢您的任何帮助 我在粘贴箱中添加了代码,因为我不想在这里有一堵文字墙 工作: 不工作: 因为i=-1,而该数组中没有

我是个新手,如果答案很明显的话,我很抱歉。基本上我有一个名为testing Stuff的程序,它是由其他人制作的,你可以从一个电影剪辑中画出多个孩子,效果很好。 然而,另一个,我移植和修改了代码,给了我一个错误

RangeError:Error#1125:索引-1超出范围13。 在佛罗里达州jocAmare2_::main timeline/endDragIt()

我们将非常感谢您的任何帮助

我在粘贴箱中添加了代码,因为我不想在这里有一堵文字墙

工作:

不工作:

因为
i=-1
,而该数组中没有
-1

那么现在。。。 为什么我要到-1

这样做是因为
isOver()
返回-1

看来这是你的问题。你别再拖东西了。。。 并且您不再处于选定对象的上方。呵呵。 真奇怪

看看其他代码,我看不出有多大区别

我给您的建议是:修改这两个应用程序以跟踪isOver()函数中的信息。检查输出中是否有任何不同之处。特别令人感兴趣的是对宽度和高度的计算

function isOver():int{
    for(var i:int = 0; i<casete.length; i++){

        if(this.mouseX >= casete[i].x-casete[i].width/2 && this.mouseX <= casete[i].x+casete[i].width/2)
            if(this.mouseY >= casete[i].y-casete[i].height/2 && this.mouseY <= casete[i].y+casete[i].height/2)
                return i;
    }

    return -1;

}
函数isOver():int{

对于(var i:int=0;i=casete[i].x-casete[i].width/2&&this.mouseX=casete[i].y-casete[i].height/2&&this.mouseY,我不打算深入研究.fla文件,因为我没有合适的程序来打开这些文件(我不使用CS6或任何你正在使用的东西)。你能复制相关的脚本并编辑你的问题以包含它们吗?我已经编辑了它以包含代码的粘贴框
var caseta:MovieClip = casete[i];
function isOver():int{
    for(var i:int = 0; i<casete.length; i++){

        if(this.mouseX >= casete[i].x-casete[i].width/2 && this.mouseX <= casete[i].x+casete[i].width/2)
            if(this.mouseY >= casete[i].y-casete[i].height/2 && this.mouseY <= casete[i].y+casete[i].height/2)
                return i;
    }

    return -1;

}
function isOver():int{
    trace("isOver called");
    trace("mouseX: "+this.mouseX+", mouseY:"+this.mouseY);
    for(var i:int = 0; i<casete.length; i++){
        trace("testing casete "+i);
        trace("x lower bound:"+(casete[i].x-casete[i].width/2)+", x upper bound:"+(casete[i].x+casete[i].width/2));
        trace("y lower bound:"+(casete[i].y-casete[i].height/2)+", y upper bound:"+(casete[i].y+casete[i].height/2));
        if(this.mouseX >= casete[i].x-casete[i].width/2 && this.mouseX <= casete[i].x+casete[i].width/2)
            if(this.mouseY >= casete[i].y-casete[i].height/2 && this.mouseY <= casete[i].y+casete[i].height/2)
                return i;
    }

    return -1;

}