Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Как изменить Spacing?
Flash Zone Forum > Macromedia Flash > Начинающим
max-montana
Интересует следующее:
Как сделать, чтобы Spacing (межсимвольный интервал) в тексте изменялся с течением времени. С помощью ключевых кадров не получается. Есть-ли способ?

Простите, если это уже обсуждалось, но я не нашёл. smile.gif
Damon
Возьмем пример из хелпа и доделаем его (выглядит говенно, но для демонстрации сойдет):

this.createTextField("mytext", this.getNextHighestDepth(), 10, 10, 200, 100);
mytext.multiline = true;
mytext.wordWrap = true;
mytext.border = true;

var format2:TextFormat = new TextFormat();
var i=0;
mytext.text = "Eat at \nJOE'S.";
setInterval(function() {
format2.letterSpacing = i++;
mytext.setTextFormat(8, 12, format2);
}, 50);
max-montana
не работает. просто появляется статичный текст, и всё. никакого изменения. unsure.gif
моя блина плакать...
Damon
Цитата(max-montana @ 21.03.2007 - 16:54) *
не работает. просто появляется статичный текст, и всё. никакого изменения. unsure.gif
моя блина плакать...


Цитата
letterSpacing (TextFormat.letterSpacing property)
public letterSpacing : Number

The amount of space that is uniformly distributed between characters. The Number value specifies the number of pixels that are added to the space after each character. A negative value condenses the space between characters.

System fonts support integer values only; however, for embedded fonts, you can specify floating point (noninteger) values (such as 2.6).

Availability: ActionScript 1.0; Flash Player 8


max-montana
простите, но я не понял.
то, что можно изменить интервал клавишами, это я знаю, но как его изменить допустим, за две секунды с 20 до 250-ти? да ещё при этом вывести этот текст из нулевого параметра альфа в 100, а потом опять в ноль?

я только начал работать с flash, и меня интерисует, возможно-ли вообще такое?
Damon
Цитата(max-montana @ 21.03.2007 - 19:26) *
простите, но я не понял.
то, что можно изменить интервал клавишами, это я знаю, но как его изменить допустим, за две секунды с 20 до 250-ти? да ещё при этом вывести этот текст из нулевого параметра альфа в 100, а потом опять в ноль?

я только начал работать с flash, и меня интерисует, возможно-ли вообще такое?


setInterval - вызывает callback через определенный интервал времени, указанный в миллисекундах
letterSpacing - это свойство TextFormat, который применяется к тексту
Вот, мы поставили изменение этого параметра и применение формата к mytext (каждые 50 миллисекунд). 2 секунды это 2000 миллисекунд, надо разделить их на 230.
Чтобы изменить letterSpacing с 20 до 250, нужно установить начальное значение равным 20 + условие, если значение >= 250, оно сбрасывается (0). В том же коллбеке установить mytext._alpha = j++ если оно >= 100, то сбрасывается (0).
MustLive
Цитата
Как сделать, чтобы Spacing (межсимвольный интервал) в тексте изменялся с течением времени. С помощью ключевых кадров не получается. Есть-ли способ?

max-montana

Воспользуйся советом (и кодом) который привёл Damon. С учётом версии флеш плеера (плагина), который ты используешь.

Spacing можешь изменить со временем как с помощью setInterval (чтобы спейсинг менялся через заданные интервалы), как в приведённом примере, или же с указанием в ключевых кадрах необходимого кода (изменяющего letterSpacing).
Русская версия IP.Board © 2001-2008 IPS, Inc.