Невозможно остановиться на указанном кадре во вспышке

У меня две картинки на двух кадрах. Есть текстовое поле, в котором будет какое-то значение, исходя из которого любой кадр будет воспроизводиться после нажатия на кнопку. Но какое бы значение ни было, каждый раз воспроизводится кадр 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);
    }
}
Другие вопросы по тегам