Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как остановить функцию когда значение равно 0 (http://www.flasher.ru/forum/showthread.php?t=133366)

lissa81 03.12.2009 12:07

как остановить функцию когда значение равно 0
 
есть счетчик который отчитывает числа. все хорошо просчитывает за исключением того что когда число доходит до финишного 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

Код AS3:

   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

Мне что то вот тут не понятно:
Код AS3:

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

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

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

Код AS3:

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


lissa81 03.12.2009 12:33

спасибо большое все заработало


Часовой пояс GMT +4, время: 16:17.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.