PDA

Просмотр полной версии : как остановить функцию когда значение равно 0


lissa81
03.12.2009, 12:07
есть счетчик который отчитывает числа. все хорошо просчитывает за исключением того что когда число доходит до финишного var finish_balance:Number = 00000; счетчик не останавливается а начинает прибавлять значения

подскажите как остановить работу функций когда значение var balance:Number = 00017; дойдет до финишного значения var finish_balance:Number = 00000;

var balance:Number = 00017;
var finish_balance:Number = 00000;
view(0);
var timer:Timer = new Timer (1000);
timer.addEventListener(TimerEvent.TIMER, cfline);
timer.start();

function cfline(e:TimerEvent)
{
var old_balance = balance--;
view(old_balance);
old_balance = finish_balance;
}

function view(old_b) {
var t = 2;
var line=String(balance);
while (line.length!=5)
{
line = '0'+line;
}
var old_line=String(old_b);
while (old_line.length!=5)
{
old_line = '0'+old_line;
}
for (var i:int = 0; i < 5; i++)
{
var number = line.charAt(i);
var number_old = old_line.charAt(i);

if (number!=number_old)
{
...
}

}
}

Doctor76
03.12.2009, 12:10
if(finish_balance == 0){return}

lissa81
03.12.2009, 12:12
что то не срабатывает (
может я не туда ее ставлю, но получается что либо она игнорируется либо не начинает совсем считать

Doctor76
03.12.2009, 12:16
пардон, мельком на код ваш посмотрел - вы пользуетесь таймером, не увидел.
ну так и останавливайте его когда значение достигнет 0
timer.stop()

lissa81
03.12.2009, 12:21
так дело в том что не знаю как именно это прописать
когда timer.stop() то он останавливается сам по себе
а вот как прописать проверку что значение уже равно 0 и он остановился я не знаю (((

Doctor76
03.12.2009, 12:30
Мне что то вот тут не понятно:

function cfline(e:TimerEvent)
{
var old_balance = balance--;
view(old_balance);
old_balance = finish_balance;
}



мы присваиваем к переменной old_balance значение balance - 1
вызываем с уменьшенным значением функцию, и зачем то присваиваем old_balance =0

может подошло бы просто так:



function cfline(e:TimerEvent)
{
if(balance <=0){
timer.stop();
return;
}else{
view(balance--);
}

}

lissa81
03.12.2009, 12:33
спасибо большое все заработало