метод таймера не добавляет текстовое поле в спрайт - PullRequest
0 голосов
/ 02 сентября 2011

Когда я нажимаю кнопку клавиатуры вниз, текстовое поле добавляется в спрайт, но не через вызов события таймера. Почему это так?

package
{

    import flash.display.Sprite;
    import flash.events.KeyboardEvent;
    import flash.text.TextField;
    import flash.utils.Timer;
    import flash.events.TimerEvent;

    public class Test extends Sprite
    {

        public function Test()
        {
            var timer:Timer = new Timer(3);

            stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
            timer.addEventListener(TimerEvent.TIMER, onTime);
            timer.start();

        }

        function onKeyDown(event:KeyboardEvent):void {

            //          graphics.lineStyle(10,Math.random() * 10000, 10);
            //          graphics.drawCircle(100, 100, 80);  

            var txtFld:TextField = new TextField();

            txtFld.x = 200;
            txtFld.y = 200;
            txtFld.width = 25;
            txtFld.height = 15;
            txtFld.text = "90";         

            addChild(txtFld);
        }



        function onTime(event:Timer):void {


            var txtFld:TextField = new TextField();

            txtFld.x = 100;
            txtFld.y = 100;
            txtFld.width = 25;
            txtFld.height = 15;
            txtFld.text = "80";     

            addChild(txtFld);
        }

    }

}

1 Ответ

1 голос
/ 02 сентября 2011

В обработчике событий таймера вы приравниваете объект входящего события как Timer, а не TimerEvent. Это заставляет Flash Player выдавать ошибку.

Кроме того, этот код будет продолжать добавлять TextFields, поскольку Timer выполняет цикл и вызывает эту функцию в каждом цикле.

function onTime(event:TimerEvent):void {
    //stop the timer
    evt.target.stop();

    var txtFld:TextField = new TextField();

    txtFld.x = 100;
    txtFld.y = 100;
    txtFld.width = 25;
    txtFld.height = 15;
    txtFld.text = "80";     

    addChild(txtFld);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...