Как заставить actionscript 2 интерпретировать код как обычный текст?

Я пытаюсь создать действие на основе флэш-памяти, в котором конечный пользователь будет вводить какую-то Java в качестве письменного упражнения, а когда это будет сделано, он нажмет Enter, и флэш-память проверит, правильно ли они набрали.

Проблема возникает там, где я пишу сценарий действий. Когда я тестирую фильм, flash выдает много ошибок, потому что думает, что Java, которую я набрал в текстовом поле ввода, — это просто плохо отформатированный код. Код, который я использую, в прошлом работал для простых вещей, таких как ввод имени или числа, но с вводом типа кода он ломается. Я знаю, что в HTML есть теги для отображения кода в виде текста, но я не могу найти ничего о том, как это сделать в actionscript 2. Вот что у меня есть:

keyListener = new Object();
keyListener.onKeyDown = function() {
if(Key.getCode() == Key.ENTER){
if(allthecode.text == "
    // Import the required API classes.
    import java.util.Scanner;
 
    public class ShowByte 
    {
    public static void main(String[] args) 
    {
    // Create the scanner.
    Scanner GetByte = new Scanner(System.in);

    // Obtain a byte value.
    System.out.print("Type any number: ");
    byte MyByte = GetByte.nextByte();

    // Display the value on screen.
    System.out.println("The value of MyByte is: " + MyByte);
    }
    }
    ") {gotoAndPlay(150);
        }
    }
};
Key.addListener(keyListener);

РЕДАКТИРОВАТЬ: Ли понял, что код состоял из нескольких строк. Как только я поместил все в пределах меток ' ' и сжал все до одной строки, все заработало!


person Sarah Wright    schedule 06.02.2013    source источник


Ответы (1)


я думаю, что вы получаете ошибки из-за того, как вы отформатировали свою строку - у вас есть "окружающая строка, но также и внутри нее - flash запутывается. Используйте либо ", либо ', чтобы окружить строку, а затем другой тип внутри строки. например:

if (allthecode.text == '
    // Import the required API classes.
import java.util.Scanner;

public class ShowByte 
{
public static void main(String[] args) 
{
// Create the scanner.
Scanner GetByte = new Scanner(System.in);

// Obtain a byte value.
System.out.print("Type any number: ");
byte MyByte = GetByte.nextByte();

// Display the value on screen.
System.out.println("The value of MyByte is: " + MyByte);
}
}
') {gotoAndPlay(150);

Или опубликуйте сообщение об ошибке, которое вы получите, и докажите, что я ошибаюсь;)

person Community    schedule 06.02.2013
comment
обратите внимание, как сам stackExchange форматирует мою строку иначе, чем вашу - ваш код имеет подсветку синтаксиса во внутренних строках; мой нет. - person ; 06.02.2013
comment
Эй, спасибо, что изучили это. Я попробовал эту идею, и хотя код форматировался по-другому (кажется, это хороший знак!), он все равно выдавал ошибки... 1. Строка 4: Строковый литерал не был должным образом завершен 2. Строка 6: ')' ожидалось 3. Строка 7: синтаксическая ошибка. 4.Line8: атрибут, используемый вне класса. 5. Строка 10: Синтаксическая ошибка. 6.Line13: Не удалось загрузить класс или интерфейс java.util.Scanner. 7.Строка 17: Синтаксическая ошибка. 8.Line22: обнаружен непредвиденный '}' 9.Line23: строковый литерал не был должным образом завершен. Итак... какая-то неразбериха. :-/ - person Sarah Wright; 06.02.2013
comment
ваш {} не сбалансирован - добавьте еще один } после gotoAndPlay(150); - person ; 06.02.2013
comment
дох! вам не нужен дополнительный } - я просчитался, я думаю. возможно, потому что ваша строка занимает несколько строк. Я больше не использую AS2, поэтому могу ошибаться. - person ; 06.02.2013
comment
Хм. В конце всегда простые ответы. Проблема заключалась в наличии нескольких строк. Я привык к HTML, где обычно несколько строк в текстовом редакторе не имеют значения. Большое спасибо! - person Sarah Wright; 06.02.2013