Если оператор для глобальной переменной не выполняет функцию gotoAndStop (); - PullRequest
0 голосов
/ 17 апреля 2019

Я делаю простую концептуальную игру, в которой я создал кнопки, которые являются целями. Когда пользователь щелкает указанные цели, он выполняет следующий код:

on (release){
    _global.targetCount++;
    Target1._visible=false;


    if(_global.targetCount==3){
        gotoAndStop(4);
    }

}

глобальная переменная была объявленакадр, подобный следующему:

_global.targetCount = 0;

и кнопки исчезают, когда я нажимаю на них, как они должны, но как только я нажимаю на последний 3-й, и он исчезает, он не может успешно проверить, чтоif (_global.targetCount == 3) и перейти к 4-му кадру.

Я попытался объявить переменную по-другому, например:

var targetCount:Number = 0;

также попытался сделать это так, но наиспользуя кнопку проверки кода, он сказал, что мой синтаксис был неправильным:

var _global.targetCount:Number = 0;

и вызывал каждый экземпляр как просто targetCount, но это тоже не исправило,

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

https://www.kirupa.com/developer/actionscript/tricks/global.htm

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

Вся помощь с радостью приветствуется!

1 Ответ

0 голосов
/ 11 июня 2019

Каждый ключевой кадр на сцене - это новое закрытие.Если у вас есть переменная в кадре 2, и вы хотите изменить / установить или прочитать значение этой переменной в кадре 3, эта переменная не существует и не определена.Если вы попытаетесь увеличить это неопределенное значение, вы получите NaN и gotoAndStop(NaN), ничего не делая.

Вставьте trace(_global.targetCount); между _global.targetCount++; и Target1._visible=false; для отладки.

...