![]() |
Переход на следующий Фрейм после эффекта «Печатной машинки»
У меня появилась небольшая проблема:
Во время работы «Печатной машинки» не работает Motion –анимация. «Печатная машинка»: Frame1 ---------- a=0; ---------- Frame 2 ---------- test = new Array('Массив с текстом (с ним все ок)'); _root.text = _root.text+test[a]; ---------- Frame 3 ---------- a++; gotoAndPlay (2); ---------- Я во втором слое (на 3 кадра) сделал МувиКлип который не хочет работать. Как мне заставить работать Этот клип? ЗЫ: 1)Как сделать, чтоб после завершения печатанья клип печатался заново? 2)Как уменьшить скорость выведения текста и массива (чтоб по медленней печаталось) |
0) Дай исходник
1) _root.text = ""; gotoAndPlay (1); 2) Добавить пустых кадров, к примеру Вообще говоря, есть функция string.charAt(i); |
Цитата:
http://www.dizain.info/banner-to-chaf.fla |
2Manix
Строго говоря, если ты уж занялся программированием чего бы то ни было, то стоит вообще забыть что такое таймлайн, а писать все в одном фрэйме. Тогда проблем гораздо меньше. |
Я с тобой полностью согласен...
, но из-начально это был gif баннер.
ЗЫ: а как на счет помочь по теме? |
Тебе ТАК нужно?
|
напиши в третьем кадре trace(i); и все поймешь...
Вложений: 1
у тебя, как я понял не стоит переход на 4 кадр ...
тебе стоит поставить в 3 кадре проверку на окончание массива и соответствующий переход на 4 кадр. лови пример... |
Пример сделан вроде под MX.
Не мог бы ты объяснить кто эта ф-ия делает,... Я ее поставил и не что не изменилось...
ЗЫ: скомпелируй этот пример на 5 флешь. И если не трудно дай ссылку на MX я его закачаю (но только на нормальную версию) |
да, действительно под MX :/
нормальная версия - нормальнее только за деньги :)
во флеш пятый обломно переделывать... идея в следующем: 1. представляешь весь текст как одну стринговую переменную; 2. создаешь массив, путем разбиения текстовой переменной по знакам (textArray = textVar.split(""); 3. Делаешь цикл из двух кадров: в первом инкремент (i++), а во втором добавление в тесктовое поле следующего символа (textField += textArray[i]). Вот и все, разберись лучше сам - полезенее в 1000 раз нежели прикручивать чужое ;) |
Что-то не так...
В ообщем мне вот что нужно было:
1) "Печатается" текст (постоянно; т.е. как напечатался сбрасывается и опять печатается) 2) + играет МувТвин --------------------------------------------- А твой пример я не понял. Или понял но не работает. 1) Каким образом нужно сделать весь текст на String i='ТЕКСТАТЕКСТАТЕКСТАТЕКСТА'; я это так понимаю 2) textArray = textVar.split(""); вот я понимаю но не знаю что такое .split 3) Как создается цикл? textField += textArray[i]; | это название текстового поля? "+=" такое вобще сущь? |
ну, давай разбираться:
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 больше чем количество элементов массива - останавливаемся. |
Спасибо, что помогаешь....
Ок. я это все понял, но у меня по чему-то не работает, так бы игнорирует (но ошибки в скрипте нет)
Посмотри ПЛИЗ. ВОТ тут. |
какой флеш? если пятый, то либо присылай исходник, либо сходи купи ;) MX... благо стоит не особо дорого...
или давай исходник я посмотрю, чего там у тебя не так |
ну вот, выдели текстовое поле, в которое ты хочешь вывести текст, открой окно свойств текста и в поле Instance Name введи имя поля ( в твоем случае 'kon')
|
Цитата:
|
нет, кряком не помогу... к сожалению...
я знаю сайт, который вроде как помогает решить какие-то проблемы с ПО: www.filesearch.ru - поищи ответ на свой вопрос... |
Цитата:
|
На то и есть прямые руки и светлая голова :))))))
|
и пара литров не менее светлого пива :D
|
| Часовой пояс GMT +4, время: 07:40. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.