Я получаю ошибку Nan на счетчике очков, когда игрок выбирает уровень из меню.

Я сделал счетчик очков, и если у игрока начальный уровень 1 и если он выиграл, счетчик продолжает работать до следующего уровня (уровень = кадр), пока не существует никаких проблем.

Но когда игрок выбирает уровень из меню и запускает уровень 2, счетчик не работает. Уровень 2 начинается с кадра 116. Я получаю сообщение об ошибке "NaN".

Я пишу такой код, как этот Scrore Frame 1

var Scorecounter:Number = 0;

И Score_t1 - это динамический текст. Используйте код счетчика в первом кадре.

function checkButtonsone():void
{
    if(fisoneclicked21 && fistwoclicked)
    {

    Scorecounter = Scorecounter + 10;
    Score_t1.text = (Scorecounter).toString();

    acmessage.visible = true;
    acmessage.play();

    gotoAndPlay(116);//LEVEL 2
}
}

и на 2 уровне

function checkButtonponelev2():void
{
    if(fish1clickedleveltwo && fishtwoclickedleveltwo && 
    fishthreeclickedleveltwo)

    {           
    Scorecounter = Scorecounter + 10;
    Score_t1.text = (Scorecounter).toString();

    famessage.visible = true;
    famessage.play();
}
}

Я не использую ключевой кадр между двумя уровнями. Таким образом, оценка кадра продолжается до последнего кадра. (285)


person KucuKeko    schedule 13.01.2017    source источник
comment
Иерархия не ясна. Уровни — это кадры на одной временной шкале? Уровни - это разные мувиклипы?   -  person Organis    schedule 14.01.2017
comment
Уровни находятся на той же временной линии. s28.postimg.org/ow8lfldsd/Taslak_2.png   -  person KucuKeko    schedule 14.01.2017


Ответы (1)


Что ж, я понятия не имею, почему сценарии временной шкалы не работают для вас (вы можете захотеть отследить Scorecounter, если он запустится), но я могу предложить решение «глобальной» переменной. Создайте файл класса ScoreHolder.as и поместите его в ту же папку, что и ваш *.fla

package
{
    public class ScoreHolder
    {
        static public var score:Number = 0;
    }
}

Затем импортируйте его в любой кадр, где вы хотите получить доступ к значению счета:

import ScoreHolder;

function checkButtonsone():void
{
    if (fisoneclicked21 && fistwoclicked)
    {
        ScoreHolder.score += 10;
        Score_t1.text = ScoreHolder.score.toString();

        acmessage.visible = true;
        acmessage.play();

        gotoAndPlay(116);//LEVEL 2
    }
}
person Organis    schedule 14.01.2017
comment
блестяще :) Спасибо... Я хочу спросить о таймере. Могу ли я сделать то же самое на таймере. - person KucuKeko; 14.01.2017
comment
Да, вы можете использовать таймер как статическую переменную класса. Тем не менее, если вы хотите, чтобы на этой временной шкале было больше функциональных возможностей, я бы посоветовал вам создать класс для этого MovieClip (или основной временной шкалы) и получить доступ к его полям с помощью этого оператора. - person Organis; 15.01.2017
comment
Привет, орган... Я добавляю к этому высокий балл, но это не работает, не могли бы вы проверить, пожалуйста. stackoverflow.com/questions/41761659/ - person KucuKeko; 20.01.2017