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

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

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
По умолчанию Как лучше организовать анимированный флип картинки?

Картинки создаются динамически. При этом рубашка меняется собственно на картинку.
Желательно чтобы одна за другой переворачивались, с задержкой.
При этом у меня флексовский Spark

Данные по картам хранятся в массиве cardsArray, но в коде ниже я пока их не использую, заменив для теста.
Пробовал с Твиннером, но картинка получается после переворота в зеркальном отражении:

Код AS3:
elementCount = this.numElements;
for (var i:uint = 0; i<cardsArray.length; i++){
	var delayC:uint = 0.15;
	card = new Image();
	card.source = 'images/cards/' + String(Number(i + 1)) + '.jpg';
	card.x = i*100+30;
	card.y = 200;
	card.width = 123;
	card.height = 192;
	card.filters = [new DropShadowFilter(1, 45, 0x000000, 0.8, 8, 8, 1)];
	this.addElementAt(card, elementCount+i);
 
	this.getElementAt(elementCount - cardsArray.length + i).visible = true;
	TweenLite.to(this.getElementAt(elementCount - cardsArray.length + i),0.5,{scaleX:-1, overwrite:false});
	TweenLite.to(this.getElementAt(elementCount - cardsArray.length + i),0,{alpha:0,delay:delayC, overwrite:false});
	TweenLite.to(card,0.5,{scaleX:-1, overwrite:false, onComplete:hidden(this.getElementAt(elementCount - cardsArray.length + i))});
	TweenLite.to(card,0,{alpha:1,delay:delayC, overwrite:false});
	card.addEventListener(MouseEvent.CLICK, cardClick);
	delaeC += i/2;
				}
Можно ещё раз scaleX сделать по окончании, но может быть есть более изящный вариант?

Старый 02.10.2011, 21:37
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Что-то такое?
http://flasher.ru/forum/showthread.php?t=148900
__________________
Reality.getBounds(this);

Старый 02.10.2011, 21:49
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 3  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Wolsh, ой спасибо, удружил. Это вообще круто выглядит. Правда пока код не смотрел.

Добавлено через 25 минут
Все выглядит, конечно, замечательно. Но нет ли примера для более общего случая?

Старый 02.10.2011, 22:45
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Ну можно же отразить картинки сразу, ДО переворота, и твинить скейлы не от 1 до -1, а наоборот от -1 до 1.
__________________
Reality.getBounds(this);

Старый 03.10.2011, 13:57
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 5  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Можно, работает, но...

А ещё не подскажите, почему в моем примере не работает delay в TweenLite? Все карты переворачиваются одновременно. Я же пытаюсь, с помощью увеличивающегося delay сделать это последовательно, одна за другой.

Старый 03.10.2011, 14:11
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 6  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Наверное потому что delay:delayC, а инкремент у Вас для непонятной переменной – delaeC += i/2;
__________________
Reality.getBounds(this);

Старый 03.10.2011, 14:27
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 7  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Нет, не поэтому. Это я ошибся, когда от руки дописывал. Извиняюсь, невнимательно торопился.

Старый 03.10.2011, 14:38
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 8  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
А, вот же оно –
Код AS3:
var delayC:uint = 0.15;
у Вас находится ВНУТРИ цикла, то есть при каждом витке (для каждой карты) снова "обнуляется", и инкремент не происходит. Вынесите за for..

Добавлено через 1 минуту
И это... uint вообщето "беззнаковое ЦЕЛОЕ" и не может быть дробью))))
__________________
Reality.getBounds(this);

Старый 03.10.2011, 15:07
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 9  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Цитата:
у Вас находится ВНУТРИ цикла, то есть при каждом витке (для каждой карты) снова "обнуляется", и инкремент не происходит. Вынесите за for..
И это... uint вообщето "беззнаковое ЦЕЛОЕ" и не может быть дробью))))
Опять же это все погрешности ручной набивки на форуме. В тестовом приложении у меня delayC:Number и находится вне цикла. Тем не менее нет задержки в открытии карт - открываются все одновременно.

Старый 03.10.2011, 15:38
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 10  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Обратитесь к телепатам.
__________________
Reality.getBounds(this);

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

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

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


 


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


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