![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2008
Сообщений: 7
|
День добрый.
Передо мной была поставлена задача написать бегущую строку на 400 символов, так чтобы текст бежал не по прямой, а под переменным наклоном. Полазив по инету, в том числе по этому форуму, я сваял то, что представленно ниже. Но есть одно "но" - в результате этот ролик грузит 60% процессора (AMD Athlon 2500). Посоветуйте пожалуйста что можно сделать, чтобы снизить нагрузку! stop();
dx=3;//шаг дискретизации.. сдвига текста
Text = "Добро пожаловать! Вы находитесь на Web-сайте бла бла бла. Передо мной была поставлена задача написать бегущую строку на 400 символов, так чтобы текст бежал не по прямой, а под переменным наклоном. Полазив по инету, в том числе по этому форуму, я сваял то, что представленно ниже. Но есть одно "но" - в результате этот ролик грузит 60% процессора (AMD Athlon 2500).";
//разбиваем строку на буковки
for (var i = 0; i<Text.length; i++) {
this.createTextField("txt"+i, this.getNextHighestDepth(), 20*i+440, 30, 0, 0);
this["txt"+i].autoSize="center";
this["txt"+i].embedFonts = true;
this["txt"+i].text = Text.substr(i, 1);
this["txt"+i].textColor=0x717776;//серый
this["txt"+i]._alpha=1;//текст возникает не резко, а постепенно буквы становятся все ярче
}
//запоминаем масштаб, потому что он будет меняться
Xscale = this["txt"+1]._xscale;
Yscale = this["txt"+1]._yscale;
onEnterFrame = function () {
for (var i = 0; i<Text.length; i++) {
this["txt"+i]._x -= dx;//текст бежит справа налево
//участок слева, "последняя миля".
if (this["txt"+i]._x > -20 && this["txt"+i]._x < 233){
this["txt"+i]._y += dx*0.2;
this["txt"+i]._rotation =-7.5;
this["txt"+i]._yscale = this["txt"+i]._yscale/1.00175;
this["txt"+i]._xscale = this["txt"+i]._xscale/1.00175;
}
//участок справа
if (this["txt"+i]._x > 233 && this["txt"+i]._x < 437){
if (this["txt"+i]._x < 437){
this["txt"+i]._alpha+=3;
}
this["txt"+i]._y += dx*0.05;
this["txt"+i]._rotation = -3;
this["txt"+i]._yscale = this["txt"+i]._yscale/1.000477;
this["txt"+i]._xscale = this["txt"+i]._xscale/1.000477;
}
//после того, как строка пробежала - вертаем ее на исходную
if (this["txt"+i]._x < -20){
this["txt"+i]._x = 20*Text.length+437;
this["txt"+i]._y = 30;
this["txt"+i]._yscale = Yscale;
this["txt"+i]._xscale = Xscale;
this["txt"+i]._alpha=5;
}
this["txt"+i].setTextFormat(new TextFormat("ar_font",20));
}
};
|
|
|||||
|
Регистрация: Jan 2008
Сообщений: 7
|
iNils
Спасибо, что указали мне! Упустил из виду. Я не ожидал что это занимает так много процессорного времени. Переместил строку наверх, в стадию инициализации (1й цикл for) загрузка упала до 35% Можно еще что нибудь поменять, чтобы снизить загрузку до 20%? |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 7
|
Сделал. Еще убрал внутреннее условие if (this["txt"+i]._x < 437) как бессмысленное в данном случае (само выражение this["txt"+i]._alpha+=3; естественно оставил, во внешнем условии if (this["txt"+i]._x > 233 && this["txt"+i]._x < 437))
Загрузка 30-33%. Что еще? ![]() P.S. Измени пожалуйста назване - вставь букву "т" в слово "срока" - а то не найдут если что. Да и звучит неприлично) Последний раз редактировалось Niall86; 31.01.2008 в 22:06. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:47. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|