PDA

Просмотр полной версии : Плавная бегущая строка


zelik
04.03.2009, 23:31
Всем привет!

Вот уже несколько дней пытаюсь сделать "бегущую строчку", в которую грузиться текст из файл.
По адресу:
http://metoart.ru/blog/2006/02/12/auto-informer_beguschaja_stroka.html
есть пример:

// 2006 © Designer's testing area
// http://www.metoart.ru/blog
//
function buildText(m, c) {
m._x -= 1;
if (m._x<0-m._width/2) {
m._x = 450+c*7;
}
}
var loadNews:LoadVars = new LoadVars();
loadNews.load("news.dat");
loadNews.onLoad = function() {
var newsArr:String = loadNews.n;
var words:Array = newsArr.split("");
for (i=1; i<words.length; i++) {
attachMovie("mc", "mc"+i, i);
_root["mc"+i].txt = words[i];
_root["mc"+i]._x = i*7;
_root["mc"+i]._y = 27;
sc = setInterval(buildText, 20, _root["mc"+i], words.length);
}
};

Не могу понять что за параметры m, c в функцие buildText(m, c)?
Может кто знает, как все-таки сделать одинаковые интервалы между буквами?
И еще. Мне нужно зациклить текст. Я поместил вышеупомянутый код в один кадр, а из следующего кадра (по условию выхода ха экран последнего символа) вызываю опять этот код. При этом начинается ускорение у буквы налетают друг на друга.

Заранее огромное спасибо!!!

iNils
04.03.2009, 23:56
Для оформления своего кода надо использовать теги

zelik
05.03.2009, 01:00
ОК! Учту! Спасибо!
А что по поводу моих вопросов? Что думаешь? Можешь что-то предложить?

aksios
05.03.2009, 06:25
Читай хелп
setInterval(functionReference:Function, interval:Number, [param1:Object, param2, ..., paramN]) : Number
- Есть функция, которая пока ее не вызовут, просто декларация.
Есть ее вызов с передачей ей двух параметров, которые в ней оговорены, поскольку вписаны в скобки после имени функции.
В данном случае это: m=_root["mc"+i], c=words.length

nOobCrafter
05.03.2009, 12:01
Вот пример:
Эффект бегущей строки.

Запускаем Flash.
Сохраняем.
В первом кадре гл. временной шкалы код:
//
System.useCodepage = true;
var texturl = "text.txt";
this.createEmptyMovieClip("text_mc", 1);
text_mc.createTextField("pole_txt", 0, 10, 10, 80, 25);
text_mc.pole_txt.variable = "TextField";
text_mc.pole_txt.html = true;
text_mc.pole_txt.selectable = false;
text_mc.pole_txt.border = true;
text_mc.pole_txt.textColor = 0x000000;
loadVariables(texturl, "text_mc");
function rText():Void {
if (text_mc.pole_txt.hscroll<text_mc.pole_txt.maxhscroll) {
text_mc.pole_txt.hscroll += 5;
} else {
text_mc.pole_txt.hscroll = 0;
}
}
setInterval(rText, 80); //*-
//
C Flash'ем закончили.
Создаем файл text.txt и сохраняем там же, где сохранили наш *.fla
В текстовом файле следующий код/текст:
TextField=<FONT COLOR="#FFFFFF">_________________</FONT>Demiart - Photoshop Форум - лучший форум о
Photoshop в RUнете!!!<FONT COLOR="#FFFFFF">_________________</FONT>

* - можно поробовать разные значения интервала, чтобы настроить скорость прокрутки так, как это нужно Вам.

Готово. Нажимаем CTRL+Enter и смотрим или публикуем и смотри.

zelik
05.03.2009, 18:00
Всем огромное спасибо!

nOobCrafter, ты можешь подсказать, как изменить шрифт загружаемого текста и его размер?

Добавлено через 15 минут
nOobCrafter, извини, уже разобрался

Добавлено через 6 часов 1 минуту
А ты не знаешь, как сделать подчеркивания невидимыми, и то у меня строчка бежит по фону (картинке)???

BAtic
28.04.2009, 14:43
А как это перенести в AS3?

nOobCrafter
29.04.2009, 11:14
BAtic ручками переписать учитывая синтаксис ас3