我生成textfield数组和随机整数数组。每个文本字段包含数组中的一个随机数。接下来我有按钮来触发函数来搜索数组中的用户定义数字。此函数调用Timer实例以减慢搜索过程。当我点击一个按钮功能 是搜索和停止搜索过程只有一次。当我再次点击搜索按钮时,flash会给我这个错误:
TypeError: Error #1010: A term is undefined and has no properties.
at bakalarka_fla::MainTimeline/timerListener()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()
这是代码
input_hladaj.restrict ="0-9"
btn_hladaj.addEventListener(MouseEvent.CLICK, hladaj_fn);
var cislohladaj:int = new int;
var myTimer:Timer = new Timer(1000,10);
myTimer.addEventListener(TimerEvent.TIMER, timerListener);
var t:int= 0;
function timerListener (e:TimerEvent):void
{
trace("Times Fired: " + e.currentTarget.currentCount);
if(numberArray[t]==cislohladaj )
{
trace(t);
TextFields[t].backgroundColor = 0x3AEE20;
txt_vysledok.text = "Najdene na pozícii číslo " +t.toString();
t=sizeOfArray;
myTimer.stop();
myTimer.reset();
}
else
{
txt_vysledok.text = "Nenajdene"
TextFields[t].backgroundColor = 0xFF0000; //nenajde
}
t++;
}
function hladaj_fn(ev:Event):void
{
for (var g:int =0; g<sizeOfArray; g++)
{
TextFields[g].backgroundColor = 0xFFFFFF;
}
txt_vysledok.text = "";
cislohladaj = parseInt(input_hladaj.text);
myTimer.reset();
myTimer.start();
}
答案 0 :(得分:0)
计时器正在滴答10次。数组的长度可能小于10.当t
大于数组长度时,numberArray[t]
返回null并出现错误。您应该在t++;
之后添加条件:
if (t >= sizeOfArray)
{
myTimer.stop();
}