![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Всем привет.
Сразу оговорюсь что я нашел подобную тему на этом форуме, но описанный там способ меня не устраивает, об этом чуть ниже. Задача состоит в следующем: очень большая шестеренка 4000 х 4000 пикселей, должна очень медленно и плавно, едва заметно вращаться вокруг своей оси с частотой 24 фпс. В кадре видна лишь ее малая часть с зубцами. На форуме нашел 2 варианта: в обоих случаях вращение дерганое, и нифига не медленное. Но первое что пришло на ум это сделать без скриптов, задав вращение для моушен твина. Задаю один поворот за 3000 кадров - всеравно все дергается. Меня возможно, устроил бы вариант с получением короткой раскадровки вращения, скажем на 10 кадров, получился бы сэмпл, шестеренка ведь однородная, но как получить эту раскадровку непонятно, ведь моушен твин не дает нужной частоты "как ни крути". Впрочем хотелось бы иметь оба варианта в распоряжении, потому что если не делать семпл, то на поверхность щестеренки можно что-то поместить, а если делать семпл то сократится размер... наверное... Вообщем картина такая, буду признателен за помощь. Остается добавить следующие данные: Шестеренка отрисована в иллюстраторе (CS3). Флеш тоже CS3 fla исходник прилагаю (в 8й версии): Заранее спасибо. Последний раз редактировалось Nuclear_soul; 07.11.2007 в 01:00. |
|
|||||
|
Banned
[+5 08.09.07]
[+4 17.01.08] Регистрация: Dec 2005
Сообщений: 556
|
а апдейтАфтерЭвент не помогает? эдит: посмотрел вложение и понял, что нет. видимо, у _ротейшн лимитэд резолюшен.
Последний раз редактировалось aQuestion; 07.11.2007 в 02:37. |
|
|||||
|
Ооо... спасибо брат, буду разбираться... ибо познания в экшенах мои весьма скудны... может посоветуешь мне с чего начать в осмысление всех этих var'ов ?
А куда спрятан сам клип с зубцом? Какую роль играет клип с кругом? Если не сложно, объясни конструкцию? Цитата:
Последний раз редактировалось Nuclear_soul; 07.11.2007 в 02:33. |
|
|||||
|
Регистрация: Apr 2007
Сообщений: 1,369
|
Там нет зубчатого колеса,...там прямоугольники атачатся, ну, размножаются по окружности и крутятся.
Шестеренка слишком большая, сам объект большой для вращения. |
|
|||||
|
То что там нет зубчатого колеса, я понимаю, мне интересно как сам скрипт работет. Где в скрипте указан радиус вращения? и точка вокруг которой они(размноженные зубчики) вращаются, как их синхронизировать с кругом?
Последний раз редактировалось Nuclear_soul; 07.11.2007 в 03:21. |
|
|||||
|
Modus ponens
|
Цитата:
Т.е. ты пытаешься менять поворот на 0.1 градус, а технически флеш в состоянии отрисовать повороты с точностью до 0.3 градуса (поэтому же апдейтАфтерИвент и тому подобные ухищрения не спасут).
__________________
Hell is the possibility of sanity |
|
|||||
|
Цитата:
var zArr=[];//массив для мувикоа-зубцов
var fi0=0;//с какого угла начинаем расставлять
var dfi=Math.PI/128;//угол между зубцами
var x=circle._x;//координаты центра
var y=circle._y;
var r=circle._width/2;//радиус
//плодим сколько-то зубцов
for(var i=0;i<48;i++){
var z= this.attachMovie("z","z"+i,i);
z.fi=fi0-i*dfi;//определяем каждому сдвиг по углу
zArr.push(z);//кладем в массив
}
//крутим
var fi=0;//текущий общий угол поворота
function onEnterFrame(){
for(var i=0;i<zArr.length;i++){
var z=zArr[i];//зубец
var a=z.fi+fi;//его персональный угол
if(a<-Math.PI/2)z.fi+=Math.PI/2;//как уходит за какой-то предел, возвращаем назад
z._x=x+r*Math.cos(a);//ставим куда положено
z._y=y+r*Math.sin(a);
z._rotation=180/Math.PI*a;
}
fi-=0.00005;//меняем общий угол
}
|
|
|||||
|
Banned
[+5 08.09.07]
[+4 17.01.08] Регистрация: Dec 2005
Сообщений: 556
|
Цитата:
Кстати, можно тогда написать нечто вроде скачки останутся, но будут более равномерные. Последний раз редактировалось aQuestion; 07.11.2007 в 10:30. |
|
|||||
|
Banned
[+4 01.02.09]
[+1 01.02.09] |
Не надо никакого скрипта вообще тут. И шестеренки гигантской не надо.
Надо всего лишь несколько кадров видимой части шестеренки (простая тупая анимация со сменой кадров) - остальное отрезать нафиг - только тогда тормозить не будет. |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:35. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|