Начало работы с вводом текста и поля динамического текста с ActionScript 2.0 или 3.0

Судя Cem Catikkas решение с помощью отражения для Java, я должен был бы сказать его, было более изящное решение, чем я описал здесь. Однако, если Вы ищете альтернативу использованию отражения и имеете доступ к источнику, Вы тестируете, это все еще будет опцией.

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

Создание теста с доступом к членам парламента, не занимающим официального поста и методам может зоны испытания кода, для которых трудно предназначаться конкретно с доступом только к открытым методам. Если открытый метод имеет несколько включенных шагов, он может состоять из нескольких закрытых методов, которые могут тогда быть протестированы индивидуально.

Преимущества:

  • Может протестировать к более прекрасной гранулярности

Недостатки:

  • Тестовый код должен находиться в том же файле как исходный код, который может быть более трудно поддержать
  • Так же с .class выходными файлами, они должны остаться в том же пакете, как объявлено в исходном коде

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

Вот замысловатый пример того, как это работало бы:

// Import statements and package declarations

public class ClassToTest
{
    private int decrement(int toDecrement) {
        toDecrement--;
        return toDecrement;
    }

    // Constructor and the rest of the class

    public static class StaticInnerTest extends TestCase
    {
        public StaticInnerTest(){
            super();
        }

        public void testDecrement(){
            int number = 10;
            ClassToTest toTest= new ClassToTest();
            int decremented = toTest.decrement(number);
            assertEquals(9, decremented);
        }

        public static void main(String[] args) {
            junit.textui.TestRunner.run(StaticInnerTest.class);
        }
    }
}

внутренний класс был бы скомпилирован в ClassToTest$StaticInnerTest.

См. также: Подсказка по Java 106: Статические внутренние классы для забавы и прибыли

5
задан Andrew 29 July 2009 в 23:54
поделиться

3 ответа

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

Если вы хотите обновить динамическое текстовое поле один раз, попробуйте следующее:

//AS3
myDynamicTF.text = myInputFT.text;

//AS2
myDynamicTF._text = myInputFT._text;

Если вы хотите обновлять динамическое текстовое поле каждый раз, когда пользователь вводит текст в поле ввода, тогда в AS3 вам нужно прослушивать событие TextField's Change

//AS3
myInputFT.addEventListener(Event.CHANGE, changeHandler);

private function changeHandler(e:Event):void 
{
    myDynamicTF.text = myInputFT.text;
}

Для AS2 вы можете просто установить метод onChange для поля ввода:

//AS2
myInputFT.onChanged = function(textfield_txt:TextField) 
{
    myDynamicTF._text = textfield_txt._text;
};
4
ответ дан 14 December 2019 в 19:21
поделиться

Если вы работаете строго с файлами ActionScript, вам, вероятно, потребуется импортировать библиотеку событий. Это позволит вам фактически использовать события.

В начале каждого файла ActionScript, в котором вы хотите использовать события, вам нужно будет добавить:

import flash.events.*;
0
ответ дан 14 December 2019 в 19:21
поделиться

Я получал эту ошибку, пока не сохранил внешний файл .as. В отличие от файлов .fla, очевидно, что Flash использует последнюю сохраненную версию файла .as, а не текущее содержимое. Примечание: это во Flash 8, поэтому ваш пробег может отличаться.

1
ответ дан 14 December 2019 в 19:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: