Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как сделать ТЕСТ во Flash MX 2004? (http://www.flasher.ru/forum/showthread.php?t=93707)

AmaltheaJ5 27.03.2007 11:25

Как сделать ТЕСТ во Flash MX 2004?
 
Я делаю как бы тест. В 1 кадре выскакивает 1 фрукт, мы должны ввести его название в дин. поле UserEntry, если правильно то message = "Правильно!", иначе message ="Не правильно", затем хотелось бы сделать задержку, чтобы пользователь успел прочитать правильно он ввел название фрукта или нет, а затем перейти на следующий кадр с другим фруктом.
Кнопке я задаю такой код (но он работает не так как надо, а задержку вообще не знаю как делать):
Код:

//
on (release) {
        slovo=userEntry;
          if (frame=1 and slovo=="cherry") {
        message = "Правильно!";
            nextFrame();
        } else        message ="Не правильно"
          if (frame=2 and slovo=="apple") {
        message = "Правильно!";
            nextFrame();
        } else        message ="Не правильно";
            и т.д.
  }


iNils 27.03.2007 12:41

Вложений: 1
В вашем коде куча ошибок. Смотрите пример.

CorC 27.03.2007 12:42

для паузы вместо nextFrame
Код:

setTimeout(nextFrame,2000);
а про "работает не так как надо" это пока непонятно :)

AmaltheaJ5 27.03.2007 13:18

Спасибо за testF.zip, жаль только textF.fla у меня не открывается
"Unexpected file format"

CorC 27.03.2007 13:24

Вложений: 1
просто под 8 написан
пересохранил:

AmaltheaJ5 28.03.2007 10:20

Протестировала ваш код, но есть еще вопросы.
Оператор
Код:

//
setTimeout  (_root, "hideMessage", 1000, flag);

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

//
setInterval  (hideMessage, 1000, flag);

работет, но только на первом кадре и последнем, а внутренние кадры просто пролистываются с паузой которую мы задаем в данном операторе.
Такое ощущение, что дело в функции
Код:

//
function hideMessage (flag:Boolean) {
        msg.removeMovieClip ();
        if (flag) {
                nextFrame ();
        }
}


iNils 28.03.2007 12:02

setTimeout - это не документированная функция, которая появилась только в 8-ке (в AS3 она уже документирована). То есть в mx 2004 она не работает. Мы пошли в верном направлении использовав setInterval, но в отличии от setTimeout она вызывается постоянно пока ее не очустить. Выглядит это примерно так:
Код:

var id:Number = setInterval (....);
Внутри метода который она вызвает пишем:
Код:

clearInterval (id);

AmaltheaJ5 28.03.2007 12:21

Я так уже пробовала, ничего не меняется :-). Может не в том месте очищала интервал. Еще поэксперементирую.

AmaltheaJ5 02.04.2007 10:47

Вложений: 1
Доброе время суток!
Вот что у меня получилось с фруктами:
Вложение 16924
С задержкой проблемы так и остались, надпись "Правильно" не исчезает через заданный интервал времени.
Операторы:
Код:

setInterval(...)
clearInterval(...)

в моем случае не срабатывают :-(

CorC 02.04.2007 11:08

Код:

function showMessage(str, flag)
{
    msg.text = str;
    if (flag){
        Moving=setInterval(function(){
            clearInterval(Moving);
            msg.text="";
            nextFrame();
        },2000);
    } // end if
}



Часовой пояс GMT +4, время: 19:43.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.