Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Переход на следующий Фрейм после эффекта «Печатной машинки» (http://www.flasher.ru/forum/showthread.php?t=32507)

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

Тебе ТАК нужно?

netstuff 04.06.2002 10:59

напиши в третьем кадре trace(i); и все поймешь...
 
Вложений: 1
у тебя, как я понял не стоит переход на 4 кадр ...
тебе стоит поставить в 3 кадре проверку на окончание массива и соответствующий переход на 4 кадр.

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

Manix 05.06.2002 12:52

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

netstuff 05.06.2002 13:02

да, действительно под MX :/
 
нормальная версия - нормальнее только за деньги :)

во флеш пятый обломно переделывать...
идея в следующем:
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

Спасибо, что помогаешь....
 
Ок. я это все понял, но у меня по чему-то не работает, так бы игнорирует (но ошибки в скрипте нет)
Посмотри ПЛИЗ.
ВОТ тут.

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


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

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