Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Проблемы с tween-анимацией jpeg-изображений (http://www.flasher.ru/forum/showthread.php?t=136027)

mee 08.02.2010 05:02

Проблемы с tween-анимацией jpeg-изображений
 
Добрый вечер,

наконец-то разобрался с tween-анимацией в ActionScript, как мне посоветовали вот тут (http://www.flasher.ru/forum/showthread.php?t=135800).

Анимация выглядит приблизительно так:
Код AS1/AS2:

                var tween1:Tween = new Tween (pic2, '_x', mx.transitions.easing.None.easeNone, pic2._x, pic2._x - slideX , tweenTime, true);
                var tween2:Tween = new Tween (pic1, '_x', mx.transitions.easing.None.easeNone, pic1._x, pic1._x + slideX , tweenTime, true);
 
                fadeInt = setInterval(function() {
                        var xTween2  = new Tween(pic2, "_alpha", None.easeNone, 1, 100 , tweenTime/2, true);
                        var xTween1  = new Tween(pic1, "_alpha", None.easeNone, 100, 1 , tweenTime/2, true);
                        clearInterval(fadeInt);
                }
                ,(tweenTime/2)*1000);

Проблема заключается в том, что изображения "плывут" при передвижении, сдвигаются частями, и возникает ощущение дёрганности отдельных частей картинки.
(посмотреть можно тут: http://carladavid.dutchesswebdesign.com/press/flash/)

Кто-нибудь знает, как побороть эту проблему?

благодарю,
с уважением mee

Hauts 08.02.2010 09:58

Если ваши изображения лежат в библиотеке флэшки, щелкните на любом из них, и там поставьте "allow smoothing", так же и с остальными.

mooncar 08.02.2010 10:09

Вряд ли тут дело в сглаживании, тоже была мысль сперва. Хотя может и возымеет действие.

ИМХО картинки слишком велики, похоже, флеш не успевает перерисовывать. Можно попробовать использовать cacheAsBitmap = true для мувиков-контейнеров, куда грузятся картинки.
Попробовать выставить это можно для контейнера уже только после загрузки содержимого, то есть внутри onLoadInit.

Наиболее вероятное решение проблемы:
Принудительно растеризовать мувик с картинкой и двигать уже его растеризованную копию.
Для этого попробуйте использовать функцию вот из этой темы http://www.flasher.ru/forum/showthread.php?t=135637 - 4 пост.
Ее тоже нужно использовать только после загрузки, изнутри onLoadInit.
Двигать уже тогда нужно будет растеризованную копию.

Добавлено через 7 минут
Еще вот это вызывает сомнения, хотя напрямую к делу не относится:
Код AS1/AS2:

                fadeInt = setInterval(function() {
                        var xTween2  = new Tween(pic2, "_alpha", None.easeNone, 1, 100 , tweenTime/2, true);
                        var xTween1  = new Tween(pic1, "_alpha", None.easeNone, 100, 1 , tweenTime/2, true);
                        clearInterval(fadeInt);
                }

Скажите, зачем вы тут использовали интервальную функцию, если вызываете целевую функцию только один раз, сразу стирая интервал?

mee 08.02.2010 14:24

Спасибо за ответы, попробую способы, указанные выше.
Что до вызова функции - я не большой специалист во флеше, мне надо было чтобы изображение начинало фейдиться через несколько секунд после начала движения. Если есть лучшие способы (к примеру что-то подобное setDelay в JS) - буду рад их услышать.

mooncar 08.02.2010 15:09

setTimeout (someFunction, delay);

Попробуйте все же первый способ, в котором я не уверен. Но, поскольку у вас картинки подгружаются, а не зашиты в ролик, сделайте для мувиков, куда их загружаете
Код AS1/AS2:

target_mc.forceSmoothing = true ;

Это надо делать только после загрузки, то есть внутри onLoadInit (надеюсь, вы используете MovieClipLoader).

mee 08.02.2010 17:03

спасибо, чуть позже попробую и расскажу о результатах.

mooncar 08.02.2010 17:32

Странно, скачал и попробовал вашу картинку двигать с помощью Tween
Код AS1/AS2:

var tween1:Tween = new Tween (pic, '_x', mx.transitions.easing.None.easeNone, pic._x, pic._x - 100 , 2, true);

Сгладить (smoothing) пришлось, а вот характерных рывков-волн-ряби, как на сайте вашем, при перемещении не обнаружилось, не такая уж большая, видимо.
Рябь, конечно, на сайте такая странно сильная... У вас картинкой еще какие-то трансформации производятся?

Все, вот корень вашей беды:
Вы публикуете ролик на странице с размерами
Код:

width="830" height="375"
, а реально флешка у вас 840px x 375px.
Исход - плеер криво масштабирует ролик с анимированным контентом.

На будущее - вы просто не обратили внимание, что при тестировании в программе было все ок, а проблема вылезла при публикации на странице.
Отсюда сразу бы напросился вывод - искать проблему нужно было в нюансах публикации.

mee 08.02.2010 19:12

да, действительно. огромное вам спасибо за помощь! Осталось поправить анимацию и будет готово. Еще раз большое спасибо!


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

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