Привет всем, в основном, то, что я пытаюсь выполнить, заключается в сохранении числа с Общим объектом, который монеты, которые игрок собирает в игре, и если они уйдут из игры и вернутся, чтобы снова сыграть количество монет он, когда он ушел, все равно покажет, и он сможет добавить к этой сумме, если игрок заберет больше монет. У меня было это немного, но затем текстовое поле начало показывать «NAN».Сохранить номер с общим объектом и добавить к этому сохраненному номеру.
Вот как я его настроил.
переменная private var nCoins:Number;
В функции конструктора У меня есть:
sharedObjectCoins = SharedObject.getLocal("CoinsData");
nCoins = 0 + sharedObjectCoins.data.tCoins;
if (sharedObjectCoins.data.tCoins == null)
{
sharedObjectCoins.data.tCoins = nCoins;
}else
{
trace("Save data found."); // if we did find data...
loadDataTimeAttack(); // ...load the data
}
и в играх Enter.Frame Loop У меня есть функция, которая saveDataCoins
установки следующим образом:
private function saveDataCoins():void
{
if (nCoins > sharedObjectCoins.data.tCoins)
{
sharedObjectCoins.data.tCoins = nCoins;
}
coinsGraphic.coinsText.text = " " + sharedObjectCoins.data.tCoins;
sharedObjectCoins.flush();
}
не уверен, нужна ли функция, в которой происходит hitTest между монетами и игроком, но вот оно:
private function checkPlayerHitCoins():void
{
for (var i:int = 0; i < aCoinsArray.length; i++)
{
//get current point in i loop
var currentCoins:mcCoin = aCoinsArray[i];
//test if player is hitting current point
if(player.hitTestObject(currentCoins))
{
nCoins += 1;
updatecoinsTextScore();
updateCoinsPauseScreen();
//Add points sound effects
var coinsSEffect:Sound = new coinsSound();
coinsSEffect.play();
//remove point on stage
currentCoins.destroyCoins();
//remove points from array
aCoinsArray.splice(i, 1);
trace("Hit: " + aCoinsArray.length);
}
}
}
Пожалуйста, если кто-нибудь может мне помочь, возможно, укажите что-то, что я делаю неправильно. Этот код работал отлично один раз, и когда я закрыл экран и вернулся, чтобы повторить его, текстовое поле отображало NAN, и это, когда я нажимаю на монеты, иногда NAN переключается на число как секунда, а затем возвращается в NAN.
Большое спасибо сударь Я даже думать о выполнении этого nCoins = 0 + Number (sharedObjectCoins.data.tCoins); , Благодаря вашей помощи я исправил проблему. Да, в последнее время я делал много неряшливого кодирования. Честно говоря, я действительно новый для общего объекта. Просто читал все, что мог, на форумах и т. Д. Я также принял ваш совет, не пытаясь вступить в свое событие ENTER.FRAME благодаря информации о производительности! – Nathan
Ugh nvm Назад в том же месте, что и в прошлый раз. Это работало нормально, но потом просто перестало работать и теперь снова говорит NAN. Спасибо, хотя я ценю помощь – Nathan
обновить свой вопрос, чтобы показать код, который вы используете сейчас. – BadFeelingAboutThis