Невозможно остановиться на указанном кадре во вспышке
У меня две картинки на двух кадрах. Есть текстовое поле, в котором будет какое-то значение, исходя из которого любой кадр будет воспроизводиться после нажатия на кнопку. Но какое бы значение ни было, каждый раз воспроизводится кадр 3. Я не могу остановиться на 2 кадре.
on(release){
myNum=parseInt(textbox1.text);
if (myNum == 2) {
gotoAndPlay(2);
}
stop();
}
Я должен остановиться здесь, так как мое состояние в кадре 2
Но это происходит здесь всегда, что в кадре 3
1 ответ
Итак, отладка. Суть в том, чтобы узнать буквально все о данных и объектах, с которыми вы имеете дело. Где-то вдоль этих следов вы увидите, где это не то, что вы ожидаете. Следующий шаг - выяснить почему.
Небольшое исследование, и вы узнаете, что делает ваш сценарий неисправным. Возможны следующие варианты:
- textbox1 - это не имя экземпляра TextField, а имя текстовой переменной, в AS1 была такая странная вещь
- имя экземпляра не textbox1, но, возможно, TextBox1, и вы не можете получить к нему доступ, так как он чувствителен к регистру
- textbox1.text недоступен, поскольку у вас случайно есть две копии одного и того же поля ввода с одним и тем же именем экземпляра
- parseInt - это не функция, я не помню AS1/2, что хорошо, кто знает
- результат parseInt не то, что вы ожидаете
Так:
on (release)
{
// Check if button is working at all.
trace("Release!");
// Check if textbox1 is available.
trace(textbox1);
// Check text contents.
trace("<" + textbox1.text + ">");
// Check if parseInt is a valid function.
trace(parseInt);
myNum = parseInt(textbox1.text);
// Check the result of parsing the text into integer.
trace(myNum);
// Check the condition.
trace(myNum == 2);
if (myNum == 2)
{
// Check if conditional clause works as expected.
trace("Condition Worked!");
gotoAndStop(2);
}
}