![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2008
Сообщений: 283
|
Здраствуйте
делаю небольшу штуку с вращением картинок по элепсу картинки загружабся извне посмотреть на то что получается можно тут: http://evgan.0fees.net/Temp/KARUCEL_...rusel_bmp.html при медленном вращении картинки подёргиваются+( перепробывал все доступные мне сетоды уустранения данного моменты: 1 загружаемые картинки перевожу в битмапу с параметрам Smoothing: //_____ БИТМАПА 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, что бы не дёргалась картинка при движении) 3 потом оказалось, что когда дробовые значения шага изменения координат и масштаба, то подёргивается меньше, но тем не мения дёргается так вот вопрос, это специфика 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 картинки менее дёрганные стали, правда иза отсустви сглажмвания картинки немного коробятся, но это лучше чем они прыгают Парадокс Последний раз редактировалось Evgan; 25.11.2009 в 03:04. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|