2016-08-24 2 views
0

Я пытаюсь реализовать оценку своей викторине.добавление оценки и отображение as3

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

Если пользователь получил ответ неправильно (снова кнопку), он перейдет к кадру, где говорится, что ответ неверен, и оценка останется неизменной.

Мой код выглядит следующим образом для кнопок викторины:

первый правильный ответ:

//implementation of score 
var score; 
score = 0; 
//adding points to score 
     score ++; 
     //setting the txt text field to score 
     scorecounter.text = score.toString(); 

//not embedding the font to display the score 
scorecounter.embedFonts = false; 

каждый соответствующий правильный ответ:

//adding to score 
     score ++; 
//setting the txt text field to score 
     scorecounter.text = score.toString(); 

scorecounter.embedFonts = false; 

каждый соответствующий неправильный ответ :

//adding to score 
     score --; 
//setting the txt text field to score 
     scorecounter.text = score.toString(); 

scorecounter.embedFonts = false; 

У меня статический текст, который говорит счет, и динамический текст рядом с ним, что это пустой и называется scorecounter, где я хотел бы счет, чтобы идти по одному.

Что происходит сейчас, когда пользователь отвечает на первый ответ неправильно (или достаточно неверно) для отображения «NaN».

В викторине есть пять вопросов, поэтому я хочу, чтобы числовые переменные снижались, если пользователь задал вопрос неправильно, но позволил ему спуститься до нуля и максимум до пяти в качестве максимально возможного результата (если пользователь все правильно).

Как я могу это сделать? Приветствия!

ответ

0

Вы вызываете функцию внутри себя. updateScore() не может быть внутри function updateScore():void{}. Это должно иметь смысл. В инструкции о том, как испечь торт, нельзя включить шаг, который говорит «испечь торт». Инструкции о том, как добраться до больницы, не могут включать «добраться до больницы». Ваши инструкции для updateScore включают в себя этап updateScore. Таким образом, только функции вызова (т. Е. Говорят, что flash выполняет функцию) из-за пределов этой функции.

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

function myFunction():void{ 
    //do stuff 
} 
myFunction(); // this will trigger the function and "do stuff" will occur 

Для вашей новой задачи:

Этот код должен идти в верхней части вашего скрипта вне функции.

var score:int = 0; 

вместо того, чтобы объявлять его только после того, как был задан первый вопрос.

Вы объявляете переменную score только после правильного ответа, я думаю, поэтому, если первый ответ неверен, оценка NaN.

+0

отлично, спасибо! Я смог это исправить. У меня теперь есть ошибка, где мне бы хотелось, чтобы она отображалась между 0-5 для оценки, прямо сейчас она показывает NaN, если ответ первого вопроса неверен. Может помочь? – ConfusedDreamweaverUser

+0

обновленный код для вашего просмотра выше, если вы можете помочь :) – ConfusedDreamweaverUser

+0

Ответили также на этот вопрос. Не забудьте проверить зеленую отметку рядом с ответом, который лучше всего работает. Вы можете подождать несколько дней, если хотите, чтобы, конечно, вышли лучшие ответы. –

Смежные вопросы