Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Таймер не работает после перезапуска! (http://www.flasher.ru/forum/showthread.php?t=146709)

Droplz 15.11.2010 21:15

Таймер не работает после перезапуска!
 
Код AS3:

package x{
        class x {
                function x() {
                        var timeTimer:Timer=new Timer(delay,repeat);
                        var time:TextField=new TextField  ;
                        var delay:uint=100;
                        var repeat:uint=50;
                        var circle:Sprite=new Sprite  ;
                        var newGame:Sprite=new Sprite
                        //рисую circle
                        timeTimer.addEventListener(TimerEvent.TIMER, timerHandler);
                        timeTimer.addEventListener(TimerEvent.TIMER_COMPLETE, gameOver);
                        circle.addEventListener(MouseEvent.MOUSE_DOWN,mouseClickListener);
                }
                function timerHandler(e:TimerEvent):void {
                        repeat--;
                        time.text = ""+((delay * repeat) / 1000);
                }
                function mouseClickListener(e:MouseEvent):void {
                        //двигаю circle
                        timeTimer.start();
                }
                function gameOver(e:TimerEvent) {
                        removeChild(circle);
                        //рисую newGame
                        newGame.addEventListener(MouseEvent.CLICK, mouseClickListener3);
                        addChild(newGame);
                }
                public function mouseClickListener3(e:MouseEvent):void {
                        repeat=50;
                        removeChild(newGame);
                        addChild(circle);
                        timeTimer.stop()
                }
        }
}

Проблема в том что сначала таймер работает нормально, потом он завершается, появляется newGame, а после клика на ньюгейм таймер стоит и дергается только при нажатии на circle (1 раз и на 1 деление).
И еще вопрос:как увеличить размер символов TextField, а то в хэлпе от адоб такого вроде нет.

mikhailk 15.11.2010 21:41

timeTimer.start() отсутствует
но вообще-то мне кажется этот код работать не должен.


изменить размер символов в текстовом поле:

Код AS3:

                public function setFontSize(fontSize:int) : void
                {
                        var format:TextFormat = new TextFormat();
                        format.size = fontSize;
                        textField.setTextFormat(format);
                }


samana 15.11.2010 21:49

Я просто напомню, что узнать текущий счёт таймера можно через
Код AS3:

timer.currentCount

и не заводить для этого переменную repeat,
а сбросить таймер... из справки
Код:

        reset():void
Останавливает таймер, если он выполняется, и заново присваивает свойству currentCount значение 0, аналогично кнопке сброса на секундомере.


mikhailk 15.11.2010 21:51

у автора таймер не вынесен в переменные класса.
и repeat/circle
как интересно это все работает?
если работает

Droplz 15.11.2010 21:52

Цитата:

Сообщение от Droplz (Сообщение 949967)
Код AS3:

                function mouseClickListener(e:MouseEvent):void {
                        //двигаю circle
                        timeTimer.start();


Как timeTimer.start() отсутствует?
Вот же он!^
А почему код работать не должен?
И спасибо за то что показал как "изменить размер символов в текстовом поле"!

Добавлено через 1 минуту
Цитата:

Сообщение от mikhailk (Сообщение 949980)
у автора таймер не вынесен в переменные класса.
как интересно это все работает?
если работает

Ой, я скопировал криво (там много другого кода)
:rolleyes:

mikhailk 15.11.2010 21:54

при нажатии на ньюгейм отрабатывает mouseClickListener3
там старта таймера нет

Droplz 15.11.2010 21:59

Цитата:

Сообщение от mikhailk (Сообщение 949984)
при нажатии на ньюгейм отрабатывает mouseClickListener3
там старта таймера нет

Там и не должен быть старт.
Там появляется circle, а при нажатии на циркл есть старт.
Поставил timeTimer.reset(), но с ним таймер просто сбивается и выдает что-то вроде 272734186.

Добавлено через 4 минуты
А, все, заработало!
mikhailk, samana спасибо! :)
p.s Репит (или как там говорится) я завел просто чтобы не было "магических значений".


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

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