Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Плавное движение ТвинМакс (http://www.flasher.ru/forum/showthread.php?t=147603)

Toxedo 08.12.2010 23:10

Плавное движение ТвинМакс
 
На сцене есть контейнер, в нем 14 мувиклипов. Скрипт заточен на движение главного контейра в обратную сторону мышки. Проблем в этом собственно нет, но когда начинаю двигать мышку очень медленно, ясно заметно дерганье отдельных чилдов главного клипа(( КАк сделать движение более плавным? Или...как изменить один шаг (так наверное) прохождения x чилдов главного клипа? =) Может это реализовать через десятичные числа позиции мышки...?

Код AS3:

public function verr ():void
{       
 
for (var i:int = 1;i<15;i++){
 
var m:MovieClip = tt.getChildByName("z" + i) as MovieClip;
m.scaleX = scaleY = 1.001
m.mouseChildren = false
}
tt.x = 0 //контейнер
stage.addEventListener(MouseEvent.MOUSE_MOVE,ggg)
}
 
function ggg(e){
 
        //tt.x = mouseX/stage.stageWidth  * (stage.stageWidth -tt.width) // не лучше
 
                TweenMax.to(tt,0.4,{x: mouseX/stage.stageWidth  * (stage.stageWidth -tt.width),ease:Cubic.easeOut }) //дергается, не достаточно плавно как хотелось бы
}

Добавлено через 8 минут
Тоесть надо бы узнать что то типо
Код AS3:

var zzzz:Что-то = mouseX // очень точное число
trace(zzzz) // и тут должно быть к примеру не 102 , а 102,3423423 тогда и плавнее будет двигаться


dimarik 08.12.2010 23:43

Имо, растеризовывать контейнер в Bitmap.

Toxedo 09.12.2010 00:13

Нашел по теме:
"Изображение во Flash принимает только целые координаты. То есть если при движении координата равна 14.2, она округлится до 14.0. Из-за подобных округлений то в большую, то в меньшую сторону происходит дерганье.

Есть 2 способа уменьшить рывки.
1. Поднять fps. Не с 24 до 30, а хотя бы до 60.
2. Поставить сглаживание для картинки. В данном случае Allow smoothing. Тогда изображение более точно отображаться при нецелых координатах."

dimarik, у меня тогда просто нет выбора))
А вы не подскажите как мне это программно сделать и присвоить Allow smoothing?

Добавлено через 3 минуты
У меня 100 fps стоит а всёравно переход видно с tt.x = 1 в tt.x = 2 ну всмысле на 1 больше. Надеюсь битмап поможет.

Можно наверное еще сделать огромный фрейм стайжа с огромными буквами а в браузере уже заскейлить до меньших размеров, следовательно и шаг меньше будет...но всёже я хочу чтобы при нормальных размеров небыло дерганья при переходе.

dimarik 09.12.2010 00:30

Не знаю, где Вы нашли такие ультимативные высказывания, но хелп говорит что не все так однозначно.

И да, есть один способ убрать рывки. Растеризовывать контейнер в Bitmap.

Простой прием. BitmapData#draw()

Добавлено через 12 минут
Хм. Нашел ваш источник. Постарайтесь осторожно относиться к информации, даваемой этим форумом.

Цитата:

Еще подергивание связанно с тем, что кадры во Flash Player отображаются не всегда с одинаковой скоростью. Соответственно также возникают небольшие задержки.
Это тянет на 10 баллов!

Toxedo 09.12.2010 17:24

Благодарю =) помогло!)

Rzer 09.12.2010 19:27

А простой cacheAsBitmap не помогает? По идее если элементы внутри контейнера не меняют своего положения перерисовка не должна происходить.

Toxedo 10.12.2010 06:49

Rzer.
По идее то нет. Если я сдвигаю мышку на x + 1 то и контейнер должен сдвинуться такде на x +1 , и соответсвенно дети в нем также. Но на практике выходит что двигаются только некоторые...7/14 примерно, при дальнейшем движениее они наверстывают отсталось, но другие её преобретают..

dimarik 10.12.2010 10:12

Там смысл весь в том, что дети в дробных координатах находятся.


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

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