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

Регистрация: Jul 2011
Сообщений: 67
Мой вариант:
Код AS3:
 
var counter:int = 0;
var step:int = 5;
var arr:Array = [1, 2, 3, 4, 5, 6];
 
public function timerHandler(e:TimerEvent):void {
 var current_part:Array = getArrayElemnts(arr, step, counter);
 trace('items(' + current_part.length + '): [' + current_part + ']');
 counter = (counter + step) % arr.length;
}
 
public function getArrayElemnts(array:Array, num:uint, pos:int):Array {
	var result:Array = new Array();
	var correction:int = array.length * Math.abs((Math.ceil(pos / array.length)))+1;
	while (num > 0) {
		result.unshift(array[((correction+pos + num-1) % array.length)]);
		num--;
	}
	return result;
 
}
Можно задавать отрицательные позиции.


Последний раз редактировалось ProxyGreen; 25.09.2011 в 16:05.