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

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

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

Регистрация: May 2009
Сообщений: 122
По умолчанию Работа с циклом for

Здравсвуйте.
Подскажите пожалуйста.
Есть массив координат и есть функия, которая должна в цикле проходить по массиву и вызывать анимацию для каждой ячейки, но у мея почему то вызывается только последняя ячейка.
Код AS3:
var speedCoords:Array = [195, 235, 310, 335];
var speedMax:int = speedCoords.length;
var transmission:int = 0;
var i:int = 0;
 
addEventListener(Event.ENTER_FRAME, onLoop, false, 0, true);
function onLoop(event:Event):void
{
	for(i; i < speedMax; i ++)
	{
		TweenMax.to(spd_mc, 4, {shortRotation:{rotation:speedCoords[i]}});
	}
}
Что не так, как исправить код?
Подскажите пожалуйста

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Так не успевает выполнить первые три анимации. Создайте последовательность в цикле, а потом запускайте, но в ентерфрейме все это делаете, опять вряд ли успеет.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 23.08.2011, 00:32
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 3  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Тут энтерфрэйм не нужен и каждый следующий твин надо запускать по окончанию предыдущего, делать цепочку твинов.
__________________
Отряд Котовскага

Старый 23.08.2011, 00:35
DarkKnight2009 вне форума Посмотреть профиль Отправить личное сообщение для DarkKnight2009 Найти все сообщения от DarkKnight2009
  № 4  
Ответить с цитированием
DarkKnight2009

Регистрация: May 2009
Сообщений: 122
Я не совсем понял. можно пример?

Добавлено через 2 минуты
Цитата:
Сообщение от Котяра Посмотреть сообщение
Тут энтерфрэйм не нужен и каждый следующий твин надо запускать по окончанию предыдущего, делать цепочку твинов.
А как же мне без цикла, мне ведь нужно по массиву проходить?
А в противном случае прийдется лепить 4 строки подряд одной анимации, или я ошибаюсь ?
Можно пример?

Добавлено через 20 минут
Цитата:
Сообщение от GBee Посмотреть сообщение
Так не успевает выполнить первые три анимации. Создайте последовательность в цикле, а потом запускайте, но в ентерфрейме все это делаете, опять вряд ли успеет.
Если не в Ентерфрейме, тогда где. подскажите пожалуйста?

Старый 23.08.2011, 00:59
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 5  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
нет под рукой TweenMax'а
есть http://code.google.com/p/eaze-tween/, но суть та же:
Код AS3:
var speedCoords:Array = [195, 235, 310, 335];
var speedMax:int = speedCoords.length;
 
PropertyShortRotation.register();
var tween:EazeTween = new EazeTween(spd_mc);
for (var i:int = 0; i < speedMax; i++) 
{
	tween.to(4).short(speedCoords[i]);
}

Старый 23.08.2011, 01:02
DarkKnight2009 вне форума Посмотреть профиль Отправить личное сообщение для DarkKnight2009 Найти все сообщения от DarkKnight2009
  № 6  
Ответить с цитированием
DarkKnight2009

Регистрация: May 2009
Сообщений: 122
Цитата:
Сообщение от silin Посмотреть сообщение
нет под рукой TweenMax'а
есть http://code.google.com/p/eaze-tween/, но суть та же:
Код AS3:
var speedCoords:Array = [195, 235, 310, 335];
var speedMax:int = speedCoords.length;
 
PropertyShortRotation.register();
var tween:EazeTween = new EazeTween(spd_mc);
for (var i:int = 0; i < speedMax; i++) 
{
	tween.to(4).short(speedCoords[i]);
}
Разве в твинмаксе с rotation такое проканает?

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Почитайте про TimelineLite.append или TimelineMax.append http://www.greensock.com/as/docs/tween/ слева найдете.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 23.08.2011, 01:28
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 8  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
упс, я извиняюсь, но и EazeTween, то что я написал через цикл что-то не совсем внятное дает
хотя вот так нормально все:
Код AS3:
eaze(spd_mc).to(4).short(195).to(4).short(235).to(4).short(310).to(4).short(335);
про твинмакс не могу сказать, нету

UPD: с "нанизыванием" твинов в цикле затык был в том, что следующий твин присоединялся не цепочке, а к исходному
чтобы в цикле это запустить надо на каждой итерации сохранять ссылку на возвращаемую цепочку, т.е.
Код AS3:
PropertyShortRotation.register();
var tween:EazeTween = new EazeTween(spd_mc);
for (var i:int = 0; i < speedMax; i++)
{
	tween=tween.to(4).short(speedCoords[i]);
}


Последний раз редактировалось silin; 23.08.2011 в 01:50.
Старый 23.08.2011, 01:32
DarkKnight2009 вне форума Посмотреть профиль Отправить личное сообщение для DarkKnight2009 Найти все сообщения от DarkKnight2009
  № 9  
Ответить с цитированием
DarkKnight2009

Регистрация: May 2009
Сообщений: 122
Цитата:
Сообщение от silin Посмотреть сообщение
упс, я извиняюсь, но и EazeTween, то что я написал через цикл что-то не совсем внятное дает
хотя вот так нормально все:
Код AS3:
eaze(spd_mc).to(4).short(195).to(4).short(235).to(4).short(310).to(4).short(335);
про твинмакс не могу сказать, нету
Спасибо большое, но мне нужен именно твинмакс

Добавлено через 49 секунд
Цитата:
Сообщение от GBee Посмотреть сообщение
Почитайте про TimelineLite.append или TimelineMax.append http://www.greensock.com/as/docs/tween/ слева найдете.
Спасибо, сейчас поищу

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

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
Ребят вы чего! Тут же i локальная переменная, как я понимаю в функции(кадре). В onLoop она попадёт в замыкание и при новом вызове onLoop сохранит своё старое значение. В начале цикла она не обнуляется. Причём если этот кадр(а это похоже кадр) вызывается несколько раз, то получим наростающее количество обработчиков ентерфрейма.
DarkKnight2009 Запомните, всегда, во всех циклах, обнуляйте счётчик:
Код AS3:
for(i=0; i < speedMax; i ++)
До наложения твинов скорее всего дело не доходит, после первого старта i будет иметь максимальное значение.
__________________
:)

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

Теги
цикл for

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

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


 


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


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