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

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

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

Регистрация: Feb 2010
Сообщений: 6
По умолчанию Проблемы с 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

Старый 08.02.2010, 09:58
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 2  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Если ваши изображения лежат в библиотеке флэшки, щелкните на любом из них, и там поставьте "allow smoothing", так же и с остальными.
__________________
hauts.ru

Старый 08.02.2010, 10:09
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 3  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Вряд ли тут дело в сглаживании, тоже была мысль сперва. Хотя может и возымеет действие.

ИМХО картинки слишком велики, похоже, флеш не успевает перерисовывать. Можно попробовать использовать 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);
		}
Скажите, зачем вы тут использовали интервальную функцию, если вызываете целевую функцию только один раз, сразу стирая интервал?


Последний раз редактировалось mooncar; 08.02.2010 в 17:21.
Старый 08.02.2010, 14:24
mee вне форума Посмотреть профиль Отправить личное сообщение для mee Найти все сообщения от mee
  № 4  
Ответить с цитированием
mee

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

Старый 08.02.2010, 15:09
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 5  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
setTimeout (someFunction, delay);

Попробуйте все же первый способ, в котором я не уверен. Но, поскольку у вас картинки подгружаются, а не зашиты в ролик, сделайте для мувиков, куда их загружаете
Код AS1/AS2:
target_mc.forceSmoothing = true ;
Это надо делать только после загрузки, то есть внутри onLoadInit (надеюсь, вы используете MovieClipLoader).


Последний раз редактировалось mooncar; 08.02.2010 в 15:26.
Старый 08.02.2010, 17:03
mee вне форума Посмотреть профиль Отправить личное сообщение для mee Найти все сообщения от mee
  № 6  
Ответить с цитированием
mee

Регистрация: Feb 2010
Сообщений: 6
спасибо, чуть позже попробую и расскажу о результатах.

Старый 08.02.2010, 17:32
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 7  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Странно, скачал и попробовал вашу картинку двигать с помощью 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.
Исход - плеер криво масштабирует ролик с анимированным контентом.

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


Последний раз редактировалось mooncar; 08.02.2010 в 18:03.
Старый 08.02.2010, 19:12
mee вне форума Посмотреть профиль Отправить личное сообщение для mee Найти все сообщения от mee
  № 8  
Ответить с цитированием
mee

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

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:19.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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