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

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

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

Регистрация: Nov 2007
Адрес: Санкт-Петербург
Сообщений: 19
Отправить сообщение для Nuclear_soul с помощью ICQ
Flame Помогите реализовать очень плавное и медленное вращение большого обьекта.

Всем привет.

Сразу оговорюсь что я нашел подобную тему на этом форуме, но описанный там способ меня не устраивает, об этом чуть ниже.

Задача состоит в следующем: очень большая шестеренка 4000 х 4000 пикселей, должна очень медленно и плавно, едва заметно вращаться вокруг своей оси с частотой 24 фпс. В кадре видна лишь ее малая часть с зубцами.

На форуме нашел 2 варианта:
Код:
onClipEvent (enterFrame) {
_rotation=+0.1;
}
Код:
_root.onEnterFrame = function() {
	this.mc._rotation -= 0.1;
};
в обоих случаях вращение дерганое, и нифига не медленное.

Но первое что пришло на ум это сделать без скриптов, задав вращение для моушен твина. Задаю один поворот за 3000 кадров - всеравно все дергается.

Меня возможно, устроил бы вариант с получением короткой раскадровки вращения, скажем на 10 кадров, получился бы сэмпл, шестеренка ведь однородная, но как получить эту раскадровку непонятно, ведь моушен твин не дает нужной частоты "как ни крути". Впрочем хотелось бы иметь оба варианта в распоряжении, потому что если не делать семпл, то на поверхность щестеренки можно что-то поместить, а если делать семпл то сократится размер... наверное...

Вообщем картина такая, буду признателен за помощь.

Остается добавить следующие данные:

Шестеренка отрисована в иллюстраторе (CS3).
Флеш тоже CS3

fla исходник прилагаю (в 8й версии):

Заранее спасибо.
Вложения
Тип файла: rar gear.rar (13.8 Кб, 62 просмотров)


Последний раз редактировалось Nuclear_soul; 07.11.2007 в 01:00.
Старый 07.11.2007, 01:48
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
как вариант: тело(сам круг) оставить в покое, а двигать зубцы по кругу..
сколько и как подбирать надо, но это детали..
а c _rotation действительно беда: перерисовывает когда захочет..
Вложения
Тип файла: zip gear_.zip (6.0 Кб, 79 просмотров)

Старый 07.11.2007, 02:29
aQuestion вне форума Посмотреть профиль Найти все сообщения от aQuestion
  № 3  
Ответить с цитированием
aQuestion
Banned
[+5 08.09.07]
[+4 17.01.08]
 
Аватар для aQuestion

Регистрация: Dec 2005
Сообщений: 556
а апдейтАфтерЭвент не помогает? эдит: посмотрел вложение и понял, что нет. видимо, у _ротейшн лимитэд резолюшен.


Последний раз редактировалось aQuestion; 07.11.2007 в 02:37.
Старый 07.11.2007, 02:30
Nuclear_soul вне форума Посмотреть профиль Отправить личное сообщение для Nuclear_soul Найти все сообщения от Nuclear_soul
  № 4  
Ответить с цитированием
Nuclear_soul

Регистрация: Nov 2007
Адрес: Санкт-Петербург
Сообщений: 19
Отправить сообщение для Nuclear_soul с помощью ICQ
Ооо... спасибо брат, буду разбираться... ибо познания в экшенах мои весьма скудны... может посоветуешь мне с чего начать в осмысление всех этих var'ов ?

А куда спрятан сам клип с зубцом? Какую роль играет клип с кругом?
Если не сложно, объясни конструкцию?

Цитата:
Сообщение от aQuestion
а апдейтАфтерЭвент не помогает?
А по подробнее? Куда и что прописать.


Последний раз редактировалось Nuclear_soul; 07.11.2007 в 02:33.
Старый 07.11.2007, 03:02
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 5  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
Там нет зубчатого колеса,...там прямоугольники атачатся, ну, размножаются по окружности и крутятся.

Шестеренка слишком большая, сам объект большой для вращения.

Старый 07.11.2007, 03:18
Nuclear_soul вне форума Посмотреть профиль Отправить личное сообщение для Nuclear_soul Найти все сообщения от Nuclear_soul
  № 6  
Ответить с цитированием
Nuclear_soul

Регистрация: Nov 2007
Адрес: Санкт-Петербург
Сообщений: 19
Отправить сообщение для Nuclear_soul с помощью ICQ
То что там нет зубчатого колеса, я понимаю, мне интересно как сам скрипт работет. Где в скрипте указан радиус вращения? и точка вокруг которой они(размноженные зубчики) вращаются, как их синхронизировать с кругом?


Последний раз редактировалось Nuclear_soul; 07.11.2007 в 03:21.
Старый 07.11.2007, 03:24
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 7  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Цитата:
Сообщение от silin
как вариант: тело(сам круг) оставить в покое, а двигать зубцы по кругу..
сколько и как подбирать надо, но это детали..
а c _rotation действительно беда: перерисовывает когда захочет..
Угу, если честно, то лучше такое вручную заанимировать (меняя продолжительность анимации). К сожалению, это правда, дискретность у вращения недостаточная для того, чтобы создать "красивую" анимацию. Но можно попробовать поиграться - поискать более-менее приемлимый результат.
Т.е. ты пытаешься менять поворот на 0.1 градус, а технически флеш в состоянии отрисовать повороты с точностью до 0.3 градуса (поэтому же апдейтАфтерИвент и тому подобные ухищрения не спасут).
__________________
Hell is the possibility of sanity

Старый 07.11.2007, 09:16
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 8  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
Сообщение от Nuclear_soul
То что там нет зубчатого колеса, я понимаю, мне интересно как сам скрипт работет. Где в скрипте указан радиус вращения? и точка вокруг которой они(размноженные зубчики) вращаются, как их синхронизировать с кругом?
Код:
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;//меняем общий угол
}

Старый 07.11.2007, 10:08
aQuestion вне форума Посмотреть профиль Найти все сообщения от aQuestion
  № 9  
Ответить с цитированием
aQuestion
Banned
[+5 08.09.07]
[+4 17.01.08]
 
Аватар для aQuestion

Регистрация: Dec 2005
Сообщений: 556
Цитата:
Сообщение от wvxvw
Т.е. ты пытаешься менять поворот на 0.1 градус, а технически флеш в состоянии отрисовать повороты с точностью до 0.3 градуса
больше похоже на 0.25 (0.3 все-таки немного дергается), хорошо бы найти точно на adobe.com

Кстати, можно тогда написать нечто вроде
Код:
updateGear = function() {
	_root.g._rotation -= 0.25; updateAfterEvent ();
};

// virtual "fps" we want for 1 degree rotation
var vfps = 6.0;

setInterval (updateGear, 0.25 * 1e3 / vfps);
скачки останутся, но будут более равномерные.


Последний раз редактировалось aQuestion; 07.11.2007 в 10:30.
Старый 07.11.2007, 11:16
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 10  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Не надо никакого скрипта вообще тут. И шестеренки гигантской не надо.
Надо всего лишь несколько кадров видимой части шестеренки (простая тупая анимация со сменой кадров) - остальное отрезать нафиг - только тогда тормозить не будет.

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

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

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


 


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


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