Хобрук: Ваш путь к мастерству в программировании

Прослушиватель событий потерян на кадре 2

Могу ли я узнать, почему мне нужно снова добавить «ComputeBtn.addEventListener(MouseEvent.CLICK,computeLoan)» в функцию returnToInput, иначе кнопка ComputeBtn в кадре 1 снова не будет работать. Я не удалял прослушиватель. Просто перейдите ко второму кадру, чтобы показать результат, и вернитесь к первому кадру, чтобы ввести данные.

package {
    import flash.display.*;
    import flash.events.*;

    //THE CLASS DEFINITION
    public class carApp extends MovieClip {
        function carApp() {
            gotoAndStop(1);
            ComputeBtn.addEventListener(MouseEvent.CLICK,computeLoan);
        }


        function computeLoan(event:MouseEvent) {
                              gotoAndStop(2);
                              trace("Show result");
            StartAgainBtn.addEventListener(MouseEvent.CLICK,returnToInput);
        }


        function returnToInput(event:MouseEvent) {
            gotoAndStop(1);
            ComputeBtn.addEventListener(MouseEvent.CLICK,computeLoan);
        }

    }
}
22.08.2012

Ответы:


1

В вашем классе документов конструктор запускается только один раз, поэтому он добавляет этот прослушиватель только один раз. Переход ко второму кадру удаляет его.

В вашем коде каждый раз, когда вы переходите ко второму кадру, вы настраиваете прослушиватель для «StartAgainBtn», но если у вас не было дополнительного прослушивателя для «ComputeBtn», он не будет работать, поскольку каждый раз, когда вы переходите к другому кадру вы теряете слушателей.

Если бы у вас был тот же код на первом кадре временной шкалы вместо класса документа, он работал бы так, как вы ожидаете, с добавлением слушателя один раз для «ComputeBtn». Это связано с тем, что весь код в первом кадре будет перезапущен, когда вы вернетесь.

22.08.2012
  • Поскольку я всегда пишу код на временной шкале, не знаю, почему мне нужно дважды регистрировать слушателя в классе документа. Большое спасибо за подробное объяснение. 22.08.2012
  • каждый раз, когда вы переходите к другому кадру, вы теряете слушателей. Это способ удалить прослушиватель и сохранить ресурсы времени выполнения? 22.08.2012
  • На самом деле это не короткий путь, поскольку этот слушатель все еще хранится в памяти, несмотря на то, что он не подключен к кнопке, когда вы возвращаетесь к первому кадру. Всегда удаляйте все слушатели, которые не используются. 22.08.2012
  • Новые материалы

    Структуры данных в C ++ - Часть 1
    Реализация общих структур данных в C ++ C ++ - это расширение языка программирования C, которое поддерживает создание классов, поэтому оно известно как C с классами . Он используется для..

    Как я опубликовал свое первое приложение в App Store в 13 лет
    Как все началось Все началось три года назад летом после моего четвертого класса в начальной школе. Для меня, четвертого класса, лето кажется бесконечным, пока оно не закончится, и мой отец..

    Что в лицо
    Очерк о возвращении физиогномики и о том, почему мы должны это приветствовать. История начинается со странной науки. Р. Тора Бьорнсдоттир, Николас О. Рул. Видимость социального класса по..

    Почему шаблоны проектирования и почему нет?
    Сложность — мать всех проблем в программировании. Программное обеспечение должно быть разработано с точки зрения того, кто его поддерживает, а не того, кто его пишет, потому что программное..

    Создание дизайна обуви с помощью машинного обучения
    Обувь. Что подождать? Я думал, что речь пойдет о машинном обучении! Ну это так. Если бы вы пошли на Amazon, сколько обуви вы бы нашли? Наверное, много, не так ли? Но много ли в них..

    GraalVM в 2022 году: итоги года
    2022 год был очень продуктивным для проекта и сообщества GraalVM. Вместе мы разработали множество новых функций, выпустили GraalVM для последних версий Java и новых платформ и увидели несколько..

    Быстрая разработка: волшебный мир больших языковых моделей
    РУКОВОДСТВО Быстрая разработка: волшебный мир больших языковых моделей Подход, основанный на данных, для получения наилучшего ответа Искусство и наука Можно ли совместить машинное..