我有一张脸的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();
答案 0 :(得分:2)
您的数组eyeArray
有6个元素。在此行中,您可以访问元素:
eyeArray[randomEye].play();
确定索引的变量在上面的行中定义:
var randomEye:Number = Math.floor(Math.random()*300);
此随机变量的值介于0和299(含)之间
这比你阵列的长度大。
从您的问题不清楚您的意图是什么或项目的结构是什么样的,这使得很难建议修复。
我猜测你试图从每个Movieclip中挑选一个随机帧,这些帧总共有300帧。为此,您应该将随机变量传递给您应该调用的gotoAndPlay()
而不是play
。使用for循环索引中的变量来获取数组的元素。