PDA

Просмотр полной версии : Переход на следующий Фрейм после эффекта «Печатной машинки»


Manix
02.06.2002, 23:17
У меня появилась небольшая проблема:
Во время работы «Печатной машинки» не работает Motion –анимация.
«Печатная машинка»:
Frame1
----------
a=0;
----------
Frame 2
----------
test = new Array('Массив с текстом (с ним все ок)');
_root.text = _root.text+test[a];
----------
Frame 3
----------
a++;
gotoAndPlay (2);
----------
Я во втором слое (на 3 кадра) сделал МувиКлип который не хочет работать.
Как мне заставить работать Этот клип?
ЗЫ:
1)Как сделать, чтоб после завершения печатанья клип печатался заново?
2)Как уменьшить скорость выведения текста и массива (чтоб по медленней печаталось)

Aib
03.06.2002, 01:18
0) Дай исходник
1) _root.text = "";
gotoAndPlay (1);
2) Добавить пустых кадров, к примеру

Вообще говоря, есть функция string.charAt(i);

Manix
03.06.2002, 13:19
Оригинал написал(а) Aib
0) Дай исходник
1) _root.text = "";
gotoAndPlay (1);
2) Добавить пустых кадров, к примеру

Вообще говоря, есть функция string.charAt(i);
Вот посмотри.
http://www.dizain.info/banner-to-chaf.fla

DeliMIter
03.06.2002, 21:15
2Manix

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

Manix
03.06.2002, 21:40
, но из-начально это был gif баннер.
ЗЫ: а как на счет помочь по теме?

DeliMIter
03.06.2002, 22:13
Тебе ТАК (http://www.workhousepr.com/) нужно?

netstuff
04.06.2002, 10:59
у тебя, как я понял не стоит переход на 4 кадр ...
тебе стоит поставить в 3 кадре проверку на окончание массива и соответствующий переход на 4 кадр.

лови пример...

Manix
05.06.2002, 12:52
Не мог бы ты объяснить кто эта ф-ия делает,... Я ее поставил и не что не изменилось...
ЗЫ: скомпелируй этот пример на 5 флешь. И если не трудно дай ссылку на MX я его закачаю (но только на нормальную версию)

netstuff
05.06.2002, 13:02
нормальная версия (http://www.macromedia.com/software/trial_download/) - нормальнее только за деньги :)

во флеш пятый обломно переделывать...
идея в следующем:
1. представляешь весь текст как одну стринговую переменную;
2. создаешь массив, путем разбиения текстовой переменной по знакам (textArray = textVar.split("");
3. Делаешь цикл из двух кадров: в первом инкремент (i++), а во втором добавление в тесктовое поле следующего символа (textField += textArray[i]).

Вот и все, разберись лучше сам - полезенее в 1000 раз нежели прикручивать чужое ;)

Manix
05.06.2002, 15:39
В ообщем мне вот что нужно было:
1) "Печатается" текст (постоянно; т.е. как напечатался сбрасывается и опять печатается)
2) + играет МувТвин
---------------------------------------------
А твой пример я не понял. Или понял но не работает.
1) Каким образом нужно сделать весь текст на String
i='ТЕКСТАТЕКСТАТЕКСТАТЕКСТА'; я это так понимаю
2) textArray = textVar.split(""); вот я понимаю но не знаю что такое .split
3) Как создается цикл?
textField += textArray[i];
|
это название текстового поля?
"+=" такое вобще сущь?

netstuff
05.06.2002, 15:58
ну, давай разбираться:

textVar - переменная, содержащая текст;
textArray - массив, в котором текст разбит по знакам (буквам);
textField - текстовое поле (Dynamic), находящееся например в корне фильма (_root);

На таймлайне создаешь два слоя: верхний содержит textField, в нижнем - ActionScript;

Нижний слой разбит на три кадра (keyframes), следующих строго друг за другом (#1, #2, #3).

В первом кадре (#1) определяем переменную:
textVar = "Это текст, который мы будем выводить на экран";

textArray = textVar.split(""); // split - функция, разбивающая строку в массив по определителю (в скобках), у нас определитель не задан - значит разбиваем каждый элемент

i = 0; //переменная, которая поможет нам перебрать все элементы массива

-----------------------------------------------------------------
Во втором кадре (#2) начинается тот самый цикл, про который я говорил:

i++; //это тоже самое, что i = i + 1 - инкремент (последовательное увеличение переменной на еденицу
)
-----------------------------------------------------------------

В последнем (#3) кадре основное действие: последовательно присваиваем текстовому полю элемент-за-элементом:

if(i<textArray.length) { //проверяем, чтобы i вовремя остановилось (вовремя - это значит когда кончится массив)

_root.textField += textArray[i]; //последовательно прибавляем к текстовому полю элемент, индекс которого = i (помним, что i перебирается от начала до конца всего массива)

gotoAndPlay(2); //переходим на кадр увеличения i на еденицу - то есть это непосредственно действие, образующее цикл

}
else stop(); //как только i больше чем количество элементов массива - останавливаемся.

Manix
06.06.2002, 19:20
Ок. я это все понял, но у меня по чему-то не работает, так бы игнорирует (но ошибки в скрипте нет)
Посмотри ПЛИЗ.
ВОТ тут. (http://www.Dizain.info/testing.zip)

netstuff
06.06.2002, 19:24
какой флеш? если пятый, то либо присылай исходник, либо сходи купи ;) MX... благо стоит не особо дорого...
или давай исходник я посмотрю, чего там у тебя не так

netstuff
06.06.2002, 19:29
ну вот, выдели текстовое поле, в которое ты хочешь вывести текст, открой окно свойств текста и в поле Instance Name введи имя поля ( в твоем случае 'kon')

Manix
06.06.2002, 21:29
Оригинал написал(а) netstuff
какой флеш? если пятый, то либо присылай исходник, либо [B]сходи купи ;) MX... благо стоит не особо дорого...

У нас, в Челябинске ни где его нет,... сечас закачиваю это 46 метров (Может посоветуешь кряк, чтобы триал не надоедал? manix@dizain.info) :D

netstuff
07.06.2002, 10:24
нет, кряком не помогу... к сожалению...

я знаю сайт, который вроде как помогает решить какие-то проблемы с ПО: www.filesearch.ru - поищи ответ на свой вопрос...

Акакий Акакиевич
07.06.2002, 12:23
Оригинал написал(а) DeliMIter
2Manix

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

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

DeliMIter
07.06.2002, 22:15
На то и есть прямые руки и светлая голова :))))))

Nox Noctis
08.06.2002, 00:01
и пара литров не менее светлого пива :D