0

我正在尝试创建一个益智游戏,到目前为止,移动棋子没有任何问题,但是当我尝试在 stopDrag 之后检查棋子位置时,我收到一条错误消息:错误 #1010:术语未定义且没有属性。

这是相关代码:full1 是一个影片剪辑,其中包含具有低 alpha 的拼图图片和拼图,每个拼图都有自己的实例名称。在此示例中,tr 是其中一个片段的实例名称。

    public function Move(even:MouseEvent)
{
    even.target.startDrag();

}
    public function stopMove(even:MouseEvent)
{
    this.stopDrag();
    checkPos(even.target.name);

}
    public function checkPos(nameStr:String)
{

    if(nameStr=="tr1")
    {
        if(this.full1.tr1.x>=460&&this.full1.tr1.x<=465.5&&this.full1.tr.y>=99&&this.full1.tr.y<=103)
        {
            this.full1.tr.x=460.2;
            this.full1.tr.y=101.95;
        }
    }



}

如果有人看到我写的内容有任何问题,或者对如何解决这个问题有更好的了解,我将不胜感激。谢谢。

4

2 回答 2

0

有一次,您使用“even.target.startDrag();” 开始拖动。

但在另一个函数中,您使用“this.stopDrag();” 停止拖动。

您应该始终使用“this”或始终使用“even.target”。这可能是您的错误的原因。

最好知道崩溃发生在哪一行。

于 2012-07-11T14:59:50.187 回答
0

看起来它应该even.target.stopDrag()代替this.stopDrag()(因为你开始拖动even.target)。除非错误发生在 stopDrag() 之后,在这种情况下,它看起来没有足够的信息来回答。

旁注,最好在 checkPos() 函数之外进行名称检查。例如:

this.stopDrag();
if(even.target.name == "tr1")
{
    checkPos();
}

并从 checkPos() 中删除名称检查。

于 2012-07-11T15:06:26.883 回答