as3数组错误#1010

时间:2015-02-09 01:27:13

标签: arrays actionscript-3

我基本上试图制作一个迷你游戏,你必须通过使用屏幕上的按钮(屏幕左侧和右侧的按钮)躲避即将到来的对象,当我用一个单独的对象做它时工作正常然后我决定拥有更多的对象并创建一个数组来保存它们。这就是错误累积的原因。

错误是: TypeError:错误#1010:术语未定义且没有properties.at Untitled_fla :: MainTimeline / cyclespeed()

2 个答案:

答案 0 :(得分:0)

我没有足够的代表评论,所以我会批评我在你的代码中看到的内容。

代码有很多问题。

这被宣告了两次,一次是在for循环中,另一次是在函数之外

addEventListener(Event.ENTER_FRAME, cyclespeed);

您将“handleCollision”事件附加到舞台而不是动画片段。

handleCollision引用“cycle [i]”但是我超出了范围,因为它不是我声明的for循环的一部分

function handleCollision( e:Event) : void {
    if(box_MC.hitTestObject(cycle[**i**])) {
        trace ("true");
        box_MC.x += 4;
    }
}

我建议一次建造一件,因为看起来你似乎想要立刻做很多事,而实际上没有任何工作。

答案 1 :(得分:0)

  • 您的cycle Array有5个元素,以索引 0 开头,以 4 结尾:

      

    ...数组索引从零开始,这意味着数组中的第一个元素是[0],第二个元素是[1],依此类推。

  •   
  这就是为什么你的for循环应该是这样的:

for (var i:int = 0; i < 5; i++) { }

OR

for (var i:int = 0; i <= 4; i++) { }

或者只是

for (var i:int = 0; i < cycle.length; i++) { }
  • cyclespeed函数中,i var的值始终为 5 ,这是{{1}中分配给它的最后一个值}}循环,当然for不存在,这就是你得到cercle[5]的原因:TypeError: Error #1010: A term is undefined and has no properties未定义且没有cercle[5]属性。

    < / LI>
  • 在您的情况下,您只能使用一个x侦听器来执行以下所有工作:

    Event.ENTER_FRAME

希望可以提供帮助。