![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jan 2004
Адрес: г. Мурманск
Сообщений: 27
|
Хочу вывести текстовую строку в виде отдельных букв (которые потом можно анимировать) с помощью ActionScripts.
Попробовал сам - не получилось. Последовательность действий была следующей: 1. Создал динамическое текстовое поле, задав ему переменную "letter". 2. Преобразовал это поле в MovieClip с переменной "sym0". 3. В первом кадре сцены пишу: // // Ввел нужный мне текст: text = "Тра-та-тушки, тра-та-та!"; // // Убрал символ дублируемой буквы, чтоб не мешался: sym0._visible = false; // // Организовал цикл по всей длине текстовой строки: for (i=1; i<=text.length; i++) { // // Продублировал символ с буквой, присвоив ей номер очередной буквы в строке: duplicateMovieClip("sym0", "sym"+i, i); // // Задал цель в виде символа с текущей буквой: tellTarget ("sym"+i) { // // Присвоил переменной динамического текстового поля текущую букву строки: letter = _parent.text.substring(i, 1); } // // Сдвинул текущий символ вправо, чтобы выстроить буквы в ряд: setProperty("sym"+i, _x, i*40); } 4. Запускаю мульт, получается много букв "Т". ![]() Я думаю, что проблема в дублировании клипов. ИМХО Flash не различает переменные letter в разных клипах, для него это одна переменная. Так где же я торможу?
__________________
Ибо нефиг! |
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
letter = _parent.text.substring(i, 1);
Почему - (i, 1)? Должно быть - (i-1,i) ![]() |
|
|||||
|
Регистрация: Jan 2004
Адрес: г. Мурманск
Сообщений: 27
|
Цитата:
Спасибки на добром слове. ![]()
__________________
Ибо нефиг! |
|
|||||
|
Регистрация: Jan 2004
Адрес: г. Мурманск
Сообщений: 27
|
Правда, все равно, не то получилось. Теперь он в каждом символе весь текст пишет...
![]()
__________________
Ибо нефиг! |
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
Вот такой вариант проходит.
Пробовал без создания в цикле текст.полей - ни хрена/при дублировании переменная/имя текст.поля не передаётся и как тут извратится, чего то не додумал/. Хотя вопрос конечно интересный.Получается, что при дублиров., в дубликате имеется дин.поле с неопределённым именем.Такая вот непонятка. Этот вариант - вполне рабочий, мож можно и попроще, но тут националисты навалились, еле успеваю отбиваться. test="Текст для проверки"; this.createEmptyMovieClip("mmm", 99); this.mmm.createTextField("mytext", 1, 0, 0, 0, 0); this.mmm.mytext.autoSize="left"; this.mmm.mytext.text = test; this.mmm._visible=0; for(i=1;i<=test.length;i++){ this.mmm.duplicateMovieClip("mmm"+i,99+i); this["mmm"+i].createTextField("mytext", 1, 0, 0, 0, 0); this["mmm"+i].mytext.autoSize="left"; this["mmm"+i].mytext.text = test.substring(i-1, i); this["mmm"+i]._x=20*i; } |
|
|||||
|
Регистрация: Jan 2004
Адрес: г. Мурманск
Сообщений: 27
|
Ух-х-х... Мощно! Холый скрипт, да еще и работает! Правда, 3, 4 и 5 строчки лишние...
Нет слов, одна благодарность!
__________________
Ибо нефиг! |
![]() |
Часовой пояс GMT +4, время: 01:26. |
|
|
« Предыдущая тема | Следующая тема » |
|
|