Просмотр полной версии : Проблемы с tween-анимацией jpeg-изображений
Добрый вечер,
наконец-то разобрался с tween-анимацией в ActionScript, как мне посоветовали вот тут (http://www.flasher.ru/forum/showthread.php?t=135800).
Анимация выглядит приблизительно так:
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
Если ваши изображения лежат в библиотеке флэшки, щелкните на любом из них, и там поставьте "allow smoothing", так же и с остальными.
Вряд ли тут дело в сглаживании, тоже была мысль сперва. Хотя может и возымеет действие.
ИМХО картинки слишком велики, похоже, флеш не успевает перерисовывать. Можно попробовать использовать cacheAsBitmap = true для мувиков-контейнеров, куда грузятся картинки.
Попробовать выставить это можно для контейнера уже только после загрузки содержимого, то есть внутри onLoadInit.
Наиболее вероятное решение проблемы:
Принудительно растеризовать мувик с картинкой и двигать уже его растеризованную копию.
Для этого попробуйте использовать функцию вот из этой темы http://www.flasher.ru/forum/showthread.php?t=135637 - 4 пост.
Ее тоже нужно использовать только после загрузки, изнутри onLoadInit.
Двигать уже тогда нужно будет растеризованную копию.
Добавлено через 7 минут
Еще вот это вызывает сомнения, хотя напрямую к делу не относится:
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);
}
Скажите, зачем вы тут использовали интервальную функцию, если вызываете целевую функцию только один раз, сразу стирая интервал?
Спасибо за ответы, попробую способы, указанные выше.
Что до вызова функции - я не большой специалист во флеше, мне надо было чтобы изображение начинало фейдиться через несколько секунд после начала движения. Если есть лучшие способы (к примеру что-то подобное setDelay в JS) - буду рад их услышать.
setTimeout (someFunction, delay);
Попробуйте все же первый способ, в котором я не уверен. Но, поскольку у вас картинки подгружаются, а не зашиты в ролик, сделайте для мувиков, куда их загружаете
target_mc.forceSmoothing = true ;
Это надо делать только после загрузки, то есть внутри onLoadInit (надеюсь, вы используете MovieClipLoader).
спасибо, чуть позже попробую и расскажу о результатах.
Странно, скачал и попробовал вашу картинку двигать с помощью Tween
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.
Исход - плеер криво масштабирует ролик с анимированным контентом.
На будущее - вы просто не обратили внимание, что при тестировании в программе было все ок, а проблема вылезла при публикации на странице.
Отсюда сразу бы напросился вывод - искать проблему нужно было в нюансах публикации.
да, действительно. огромное вам спасибо за помощь! Осталось поправить анимацию и будет готово. Еще раз большое спасибо!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.