|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: May 2006
Сообщений: 5
|
увеличение\уменьшение размера объекта
У меня есть 7 объектов (имена o1,o2,o3 и т.д.), мне надо, что рандомно сначало один увеличился (к примеру на 15%, или на какое-то кол-во пикселей), потом что бы он вернулся к изначальному размеру 9тоже плавно), потом это повторилось, но уже с другим объектом и так бесконечно.
Заранее спасибо за ответ. |
|
|||||
Регистрация: Sep 2005
Сообщений: 950
|
|
|
|||||
Регистрация: May 2006
Сообщений: 5
|
Эти функции я знаю, у меня проблема в том, что я не знаю как сделать, что бы сначало увеличивался один, потом уменьшался до исходного размера, потом брался другой и т.д. и т.п.
ЗЫ. я пользовался протсо функцией random(), это сильно отличается от Math.round(Math.random()*7)? |
|
|||||
Регистрация: Nov 2008
Сообщений: 528
|
Цитата:
|
|
|||||
Привет! Делать было нечего решил Вам немного помочь. Но столкнулся с задачей решение которой не могу найти. Нужна помощь.
Вот код: // Импортируем классы для анимации обьектов 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)); } // Перебираем масив curNum++; if (curNum>num) { curNum = 0; } // Запускаем функцию трансформации заново intr = setTimeout(reSize, time*1000, 200, randArr[curNum]); Спасибо! П.С. Извините за возможно не грамотный код, я только учусь... Последний раз редактировалось Art_133; 23.04.2009 в 23:35. |
|
|||||
Регистрация: May 2006
Сообщений: 5
|
Art_133, Большое спасибо!
ЗЫ. я бы делал так: создал еще две переменные sizeX = _root['o'+clip]._xscale; и sizeY = _root['o'+clip]._yscale;. Они определяются в самом начале, а потом мы просто смотрим, если нынешний размер объекта равен этим двум, то останавливаем издевательства над этим и начинаем издеваться над следующим. |
Часовой пояс GMT +4, время: 11:34. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|