Flash as3 - мувиклип с использованием таймера для обновления динамического текста.Без обновления - PullRequest
0 голосов
/ 12 декабря 2011

Я новичок в as3.Я пытаюсь создать очень простой обратный отсчет с использованием класса Timer.

  1. У меня есть movieclip, в котором есть элемент dynamic text.
  2. movieclip использует пакет для своего кода
  3. Пакет, очевидно, производный от класса MovieClip
  4. У меня есть timer, который обновляет динамическое текстовое полекаждую секунду.

При отладке кода я вижу, что таймер работает хорошо.Обновляет значение динамического текстового поля.

Однако по какой-то причине пользовательский интерфейс не обновляется.Что мне здесь не хватает?

Ответы [ 2 ]

2 голосов
/ 12 декабря 2011

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

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

private var textfield:TextField = new TextField();
private var increment:int;
private var timer:Timer = new Timer( 1000 );

private function init():void
{
    addChild( textfield );

    timer.addEventListener( TimerEvent.TIMER , updateText );
    timer.start();  
}

private function updateText( event:TimerEvent):void
{
    increment++;
    textfield.text = increment.toString();  
}
2 голосов
/ 12 декабря 2011

Если ваш таймер «работает» (то есть вы можете отследить его и увидеть, что он выводит значения в журнал, как и ожидалось), то, скорее всего, проблема в том, как вы установили шрифт в текстовом поле.
Если вы уверены, что имя экземпляра текстового поля вызывается правильно (отследите объект, чтобы убедиться, что Flash об этом знает, как в ... trace (myTextField); // (это не должно быть нулевым или неопределенным, при условии, что вы установили имя экземпляра вашего текстового поля на «myTextField».

Если все правильно, то это почти наверняка проблемы встраивания шрифтов. Вот где CS4> действительно облажался. Нажмите на текстовое поле и выберите шрифт, а затем нажмите «Вставить шрифты». После того, как вы ввели шрифт и дали ему свое собственное имя («myArialBold»), вам нужно найти * myArialBold в списке доступных шрифтов (на панели свойств, а не в диалоге шрифтов) и выберите свой. встроенный шрифт.

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

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

минус в том, что если вы когда-либо удаляете встраивание, но забыли изменить связь в ЛЮБОМ текстовом поле, Flash будет жаловаться каждый раз, когда вы открываете этот проект, что искомый шрифт отсутствует, и вы будете удалять все до последней волоски. на вашей голове ищет, где это текстовое поле. В большом проекте я видел, как это приводит к тому, что люди убивают себя Очень грустно.

Если это не сработает, нам нужно увидеть больше вашего кода:)

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