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

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

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

Регистрация: Jun 2008
Сообщений: 283
Thumbs up Вращение загруженных картинок по элепсу без дёрганий?

Здраствуйте
делаю небольшу штуку с вращением картинок по элепсу
картинки загружабся извне
посмотреть на то что получается можно тут:
http://evgan.0fees.net/Temp/KARUCEL_...rusel_bmp.html

при медленном вращении картинки подёргиваются+(

перепробывал все доступные мне сетоды уустранения данного моменты:

1 загружаемые картинки перевожу в битмапу с параметрам Smoothing:
Код AS1/AS2:
//_____ БИТМАПА
	var bmd:BitmapData = new BitmapData(imga._width, imga._height, true,0x000000);
	bmd.draw(imga);// Рисуем БИТМАПУ
	imga.removeMovieClip();//удаляем загружаемую картинку
	id_U[i_load_img_M].U.attachBitmap(bmd,5,"always",true);// вставляем битмапу в наш клип (true - Прогрмное Allow Smoothing, что бы не дёргалась картинка при движении)
2 сперва все изменения координат и масштаба приводил к целочисленным значениям, то есть шаг изменения координаты каждой картинки был равен 1 писелю (тоже самое идля масштабирования - 1 процент)

3 потом оказалось, что когда дробовые значения шага изменения координат и масштаба, то подёргивается меньше, но тем не мения дёргается

так вот вопрос, это специфика as2 и флеша, что картинки при перемещении а темболее при масштабировании будут полюбому дёргатся? или у меня алгоритм програминга движения заведамо обречён на дёргание картинок:

Код AS1/AS2:
pereodFunc=setInterval(Dvizenie,10);
function Dvizenie() {
 
Ugol += dUgol/40;//!!!!!!!!!!!! ИЗМЕНЕНИЕV УГЛА МОЖЕМ УПРАВЛЯТЬ
 
	//  ПЕРЕБИРАЕМ ВСЕ ОБЪЕКТЫ ДВИЖЕНИЯ
	for (var i_mm:Number = 1; i_mm<=_root.chislo_U; i_mm++) {
		//________________________________ изменяем угол соответствующего объекта
		Ugol_i = Ugol-((2*Math.PI)/_root.chislo_U)*(i_mm-1);
		//________________________________ изменяем положение объекта
		dX = Rx*Math.sin(Ugol_i);
		//dX = Math.ceil(Rx*Math.sin(Ugol_i));// шаг изменения координаты 1 пиксел
		//dX = (Math.ceil(Rx*Math.sin(Ugol_i))*1000)/1000;// шаг изменения координаты тысечные пикселя
		if (dX != dX_befo) {
			id_U[i_mm]._x = center._x+dX;
			//trace(id_U[i_mm]._x);
		}
		dX_befo = dX;
		//___
		dY = Ry*Math.cos(Ugol_i);
		//dY = Math.ceil(Ry*Math.cos(Ugol_i));// шаг изменения координаты 1 пиксель
		//dY = (Math.ceil(Ry*Math.cos(Ugol_i)*1000))/1000;// шаг изменения координаты тысечные пикселя
		if (dY != dY_befo) {
			id_U[i_mm]._y = center._y+dY;
			trace(id_U[i_mm]._y);
		}
		dY_befo = dY;
		//________________________________ изменяем размер объекта   
		dScale = Math.ceil((77+(Math.cos(Ugol_i)+0)*23)*1000000)/1000000;// шаг изменения масштаба до одной миллионной пикселя
		//dScale = Math.ceil(77+(Math.cos(Ugol_i)+0)*23); // шаг - 1 пиксель
		trace('___');
		if (dScale != id_U[i_mm]._xscale) {
			id_U[i_mm]._xscale = id_U[i_mm]._yscale=dScale;
			//trace(id_U[i_mm]._xscale+' <> '+id_U[i_mm]._yscale);
		}
	}
	updateAfterEvent();
 
	//___________________________ изменение глубины
	izmen_Depths();
 
 
}
//================================================================================================================================
//================================================================================================================================
 
//___________________________________________________________________________
//___________________________________________________________________________
// СОРТИВРОВКА ОБЪЕКТОВ ПО ГЛУБИНЕ
//___________________________________________________________________________
 
function izmen_Depths():Void {
	id_U_sort.sort(Sort_depth);
	function Sort_depth(a:MovieClip, b:MovieClip) {//static означает что этот метод создаётся один для всех объектов этого класса
		if (a._y>b._y) {
			return 1;
		}
		if (a._y<b._y) {
			return -1;
		}
		if (a._y == b._y) {
			return 0;
		}
	}
	for (var i_depth:Number = 0; i_depth<_root.chislo_U; i_depth++) {
		id_U_sort[i_depth].swapDepths(i_depth);
	}
}
спасибо за внимание

буду весьма благадарен за любой совет

в прложении прикрепил на всякий случай исходний

Сделал вариант без битмааы:
http://evgan.0fees.net/Temp/KARUCEL_...sel_NObmp.html
картинки менее дёрганные стали, правда иза отсустви сглажмвания картинки немного коробятся, но это лучше чем они прыгают
Парадокс
Вложения
Тип файла: rar karusel_bmp.rar (284.5 Кб, 74 просмотров)


Последний раз редактировалось Evgan; 25.11.2009 в 03:04.
Создать новую тему Ответ Часовой пояс GMT +4, время: 22:33.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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