Как я могу исправить эту ошибку в cocos2d-x

Я только что сделал простой проект Cocos2d-x. В нем несколько сцен, и у каждой есть свой JavaScript.

приборная панель.js

const MyClass = cc.Class.extend({

    ...

    update: function() {
        this.remainTimes --;
    },

    // Call the schedule method in your class constructor or init method
    ctor: function() {
        // Schedule the update function to be called every frame
        this.schedule(this.update().bind(this), 1);
        label.setFontFillColor(this.remainTimes);
        cc.log('remainTimes : ', this.remainTimes);
    };
});

вот логи консоли:

remainTimes : 10
remainTimes : 9
remainTimes : 8
remainTimes : 7
...

Но текст метки такой: 10 после 1 с 8 и через 1 с 6... Я ищу, вызывается ли этот Dashboard.js дважды в Dashboard.scene, но ничего!

Иногда работает корректно, иногда неправильно.... Почему?

Я решил эту проблему и хочу показать правильное оставшееся время.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
0
51
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я думаю, что ошибка возникает из-за того, что этот скрипт вызывается несколько раз. Вы упомянули, что связываете ссылки этого скрипта со сценой Dashboard. Разве вы не вызываете эту функцию расписания несколько раз в сцене? пожалуйста, используйте функцию unschedule() в своем коде.

Ответ принят как подходящий

Эта ошибка возникает из-за перегрузки скрипта. Я имею в виду dashboard.js, связанный со сценой на приборной панели. поэтому этот скрипт загружается один раз при загрузке сцены информационной панели, и сценарий не удаляется даже при выходе из сцены информационной панели, пока не обновится браузер.

Итак, функция schedule работает в оперативной памяти. Чтобы устранить эту ошибку, я связываю весь сценарий с первой сценой, а не с собственной сценой.

Другие вопросы по теме