从另一个函数actionscript调用函数

时间:2015-02-21 14:05:50

标签: actionscript-3

我生成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();
		
}

1 个答案:

答案 0 :(得分:0)

计时器正在滴答10次。数组的长度可能小于10.当t大于数组长度时,numberArray[t]返回null并出现错误。您应该在t++;之后添加条件:

if (t >= sizeOfArray)
{
    myTimer.stop();
}