播放随机动画片段会出现错误#1010:术语未定义且没有属性

时间:2016-09-01 19:51:55

标签: actionscript-3 flash runtime-error

我有一张脸的AS3 FLA文件。通过从阵列中播放眼动的不同动画片段,眼睛随机移动。代码在时间轴上。我一直收到这个错误:

TypeError: Error #1010: A term is undefined and has no properties.
   at TVCR_fla::eyes_4/playEyes()
   at flash.utils::Timer/_timerDispatch()
   at flash.utils::Timer/tick()

错误并没有阻止代码执行它应该做的事情,但我想知道是什么导致它。

这是我正在使用的代码。

stop();

var eyeArray:Array = new Array();

eyeArray[0] = eyeBlink1;
eyeArray[1] = eyeBlink2;
eyeArray[2] = eyeBlink3;
eyeArray[3] = eyeLeft;
eyeArray[4] = eyeRight;
eyeArray[5] = eyeWide;

var i:int = 0;

var eyeTimer:Timer = new Timer(100);

eyeTimer.addEventListener(TimerEvent.TIMER, playEyes);

function playEyes(event:TimerEvent):void{
for(i=0; i<eyeArray.length; i++)
{
    var randomEye:Number = Math.floor(Math.random()*300);        
    eyeArray[randomEye].play();
}
}

eyeTimer.start();

1 个答案:

答案 0 :(得分:2)

您的数组eyeArray有6个元素。在此行中,您可以访问元素:

eyeArray[randomEye].play();

确定索引的变量在上面的行中定义:

var randomEye:Number = Math.floor(Math.random()*300);  

此随机变量的值介于0和299(含)之间

这比你阵列的长度大。

从您的问题不清楚您的意图是什么或项目的结构是什么样的,这使得很难建议修复。

猜测你试图从每个Movieclip中挑选一个随机帧,这些帧总共有300帧。为此,您应该将随机变量传递给您应该调用的gotoAndPlay()而不是play。使用for循环索引中的变量来获取数组的元素。