Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.06.2008, 17:28
NRJalex вне форума Посмотреть профиль Отправить личное сообщение для NRJalex Найти все сообщения от NRJalex
  № 1  
Ответить с цитированием
NRJalex

Регистрация: Jun 2008
Сообщений: 24
Отправить сообщение для NRJalex с помощью ICQ
По умолчанию движение кнопок по кругу!

есть проблемка...
есть сайт http://lesha-banda.narod.ru/ на котором временно тестирую созданное...
структура такова: есть главный файл (main.swf) с которого все начинается, в самом конце подгружается файлик circle - это и есть анимированное меню...
circle это 5 кнопок, при старте мувика (назовем его circle) начинают криться (вначале с равным ускорением до определенной скорости, а после равномерное движение), при наведении на кнопку происходят действия с самой кнопкой (прозрачность, подпись и все такое). сам по себе мувик работает нормально без тормозов... но! я его подгружаю в основной файл (main.swf) и после того как шарики-кнопки раскрутились вдруг начинаются тормоза! вся анимация проигрывается в приблизительно в 2 раза медленее (это можно наблюдать по ссылке) ((( уже все перепробовал... убирал лишнии эффекты, переменные сносил... ничего
вот функция по которой раскрычиваются 5 кнопок, может ошибка подкралась:
Код:
ampl=0.4;  // радиус
Lx = 512  // сдвиг начала координат по оси х
Ly = 420;    // сдвиг начала координат по оси y
K = 500; // коэффициент перевода м) в пикселы
K1 = 400;
l=1.25;
t = 0;       // начальное значение времени
dt = 0; // шаг по времени
T = 20 //период вращения
xs = 0;
dx = 1;
test=0;
_root.onEnterFrame = function (){
     t = t + dt;
     if (getTimer()>3500) {
          dt+=0.005;
          if(dt>0.1) dt=0.1; }
     else{t = 0;}
     if (test == 1) {dt=0};
     x1 = ampl * Math.sin(t/T * 2* Math.PI);
     y1 = ampl * Math.cos(t/T * 2* Math.PI);
     x2 = ampl * Math.sin(t/T * 2* Math.PI-l);
     y2 = ampl * Math.cos(t/T * 2* Math.PI-l);
     x3 = ampl * Math.sin(t/T * 2* Math.PI-2*l);
     y3 = ampl * Math.cos(t/T * 2* Math.PI-2*l);
     x4 = ampl * Math.sin(t/T * 2* Math.PI-3*l);
     y4 = ampl * Math.cos(t/T * 2* Math.PI-3*l);
     x5 = ampl * Math.sin(t/T * 2* Math.PI-4*l);
     y5 = ampl * Math.cos(t/T * 2* Math.PI-4*l);
          face1._y = Ly + y1 * K;
        face1._x = Lx - x1 * K;
          face2._y = Ly + y2 * K;
         face2._x = Lx - x2 * K;
          face3._y = Ly + y3 * K;
         face3._x = Lx - x3 * K;
          face4._y = Ly + y4 * K;
         face4._x = Lx - x4 * K;
          face5._y = Ly + y5 * K;
         face5._x = Lx - x5 * K;
     trace ("x_красная" +"="+ face1._x);
     trace ("y_красная" +"="+ face1._y);
     trace ("время" +"="+ getTimer());
     trace ("t/T * 2* Math.PI" +"="+ t/T * 2* Math.PI);
}
может есть какая то более универсальная функция движения объектов по кругу?
если кто может помочь, то сткукнитесь в аську 267496731
ХЕЛП!!!


Последний раз редактировалось NRJalex; 24.06.2008 в 18:36.
Старый 24.06.2008, 17:31
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 2  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
NRJalex, исправьте свой пост, оформите код тегами [code][/code]

Старый 24.06.2008, 18:57
NRJalex вне форума Посмотреть профиль Отправить личное сообщение для NRJalex Найти все сообщения от NRJalex
  № 4  
Ответить с цитированием
NRJalex

Регистрация: Jun 2008
Сообщений: 24
Отправить сообщение для NRJalex с помощью ICQ
поправил код, но все равно тормозит... сразу после раскручивания кнопок! вроде и переменных левых там нет (((
Код:
ampl=0.4;  // радиус
Lx = 512;  // сдвиг начала координат по оси х
Ly = 420;    // сдвиг начала координат по оси y
K = 500; // коэффициент перевода м) в пикселы
l=1.25;  //смещение шариков
t = 0;       // начальное значение времени
dt = 0; // шаг по времени
dx = 1;
test=0;
_root.onEnterFrame = function (){
     t = t + dt;
     if (getTimer()>3000) {
          dt+=0.0001;
          if(dt>0.05) dt=0.05; }
     else{t = 0;}
     if (test == 1) {dt=0};
     face1._x = Lx+K*ampl*Math.sin(t);
     face1._y = Ly-K*ampl*Math.cos(t);
     face2._x = Lx+K*ampl*Math.sin(t-l);
     face2._y = Ly-K*ampl*Math.cos(t-l);
     face3._x = Lx+K*ampl*Math.sin(t-2*l);
     face3._y = Ly-K*ampl*Math.cos(t-2*l);
     face4._x = Lx+K*ampl*Math.sin(t-3*l);
     face4._y = Ly-K*ampl*Math.cos(t-3*l);
     face5._x = Lx+K*ampl*Math.sin(t-4*l);
     face5._y = Ly-K*ampl*Math.cos(t-4*l);
	 }

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:11.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:11.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.