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

Playing random movieclips gives Error #1010: A term is undefined and has no properties

我有一张人脸的 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();

您的数组 eyeArray 有 6 个元素。在这一行中,您访问一个元素:

eyeArray[randomEye].play();

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

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

这个随机变量的值在0到299之间(含)

这比数组的长度大得多。

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

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