Показать сообщение отдельно
Старый 25.09.2011, 00:34
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 1  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
По умолчанию Закольцованная выборка нескольких элементов из массива

Есть массив 1,2,3,4,5,6,7,8
Нужно по таймеру (или еще как-то) выбирать из него по несколько элементов, допустим, по 3

Можно ли как-то оптимизировать этот код, или вообще, проще сделать ?

Код AS3:
import flash.utils.Timer;
import flash.events.TimerEvent;
 
var data:Array=[0,1,2,3,4,5,6,7];
var tickItems:int=3;
 
var counter:int=0;
 
var timer:Timer=new Timer(1000);
timer.start();
timer.addEventListener(TimerEvent.TIMER,timerHandler);
 
function timerHandler(event:TimerEvent):void
{
	var i:int;
	var items:Array=new Array();
	var startPos:int=counter;
	counter+=tickItems;
	if(counter>data.length)
	{
		var razn=Math.abs(counter-data.length);
		for(i=startPos;i<data.length;i++)
		{
			items.push(data[i]);
		}
		for(i=0;i<razn;i++)
		{
			items.push(data[i]);
		}
		counter=razn;
	}
	else
	{
		for(i=startPos;i<startPos+tickItems;i++)
		{
			items.push(data[i]);
		}
	}
	trace(items);
}


Последний раз редактировалось wvxvw; 25.09.2011 в 13:28.