Показать сообщение отдельно
Старый 23.04.2009, 23:32
Art_133 вне форума Посмотреть профиль Отправить личное сообщение для Art_133 Посетить домашнюю страницу Art_133 Найти все сообщения от Art_133
  № 5  
Ответить с цитированием
Art_133
 
Аватар для Art_133

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
Привет! Делать было нечего решил Вам немного помочь. Но столкнулся с задачей решение которой не могу найти. Нужна помощь.
Вот код:
Код AS1/AS2:
// Импортируем классы для анимации обьектов
import mx.transitions.Tween;
import mx.transitions.easing.*;
 
//Номер текущего клипа
var curNum:Number = 0;
//Колличество роликов
var num:Number = 7;
//Задержка между ресайзами
var time = 1;
// Создаём масив что бы увеличение обьектов не повторялось больше 1-го раза за круг
var randArr:Array = new Array();
// количество роликов 7
for (var i:Number = 0; i<=(num-1); i++) {
	// заполняем масив
	randArr.push(i);
}
// Перемешваем масив
//Функция перемешивания массива
Array.prototype.shuffle = function(b) {
	var i = this.length, j, t;
	while (i) {
		j = Math.floor((i--)*Math.random());
		t = b && typeof this[i].shuffle !== 'undefined' ? this[i].shuffle() : this[i];
		this[i] = this[j];
		this[j] = t;
	}
	return this;
};
 
//Вызываем эту функцию
randArr.shuffle();
 
// Вызываем функцию изменения размера
reSize(200,randArr[curNum]);
 
 
 
// Функция Изменение размера
function reSize(n:Number, clip:Number) {
	trace(clip);
	var Xscale:Tween = new Tween(_root['o'+clip], "_xscale", Strong.easeOut, _root['o'+clip]._width, n, 2, true);
	var Yscale:Tween = new Tween(_root['o'+clip], "_yscale", Strong.easeOut, _root['o'+clip]._height, n, 2, true);
	Xscale.onMotionFinished = function() {
		this.yoyo();
	};
	Yscale.onMotionFinished = function() {
		this.yoyo();
	};	
	//trace(n);
}
 
//Функцию нахождения случайного числа
//r - максимальное число
function rand(r:Number):Number {
	return (Math.floor(Math.random()*r));
}
Вроде работает, но нужно ведь остановить трансформацию текущего клипа и запустить функцию заново прибавив 1 к номеру элемента массива. То-есть следующий код:
Код AS1/AS2:
 
// Перебираем масив
curNum++;
if (curNum>num) {
curNum = 0;
}
// Запускаем функцию трансформации заново  
intr = setTimeout(reSize, time*1000, 200, randArr[curNum]);
Подскажите как отследить момент когда текущий клип вернулся к старым размерам и остановить его?
Спасибо!
П.С. Извините за возможно не грамотный код, я только учусь...


Последний раз редактировалось Art_133; 23.04.2009 в 23:35.