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

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

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

Регистрация: May 2006
Сообщений: 5
По умолчанию увеличение\уменьшение размера объекта

У меня есть 7 объектов (имена o1,o2,o3 и т.д.), мне надо, что рандомно сначало один увеличился (к примеру на 15%, или на какое-то кол-во пикселей), потом что бы он вернулся к изначальному размеру 9тоже плавно), потом это повторилось, но уже с другим объектом и так бесконечно.
Заранее спасибо за ответ.

Старый 23.04.2009, 11:01
lexa2000lexa вне форума Посмотреть профиль Отправить личное сообщение для lexa2000lexa Найти все сообщения от lexa2000lexa
  № 2  
Ответить с цитированием
lexa2000lexa

Регистрация: Sep 2005
Сообщений: 950
в помошь вам
Код AS1/AS2:
_xscale,_yscale и Math.round(Math.random()*7)

Старый 23.04.2009, 20:34
DEM90 вне форума Посмотреть профиль Отправить личное сообщение для DEM90 Найти все сообщения от DEM90
  № 3  
Ответить с цитированием
DEM90

Регистрация: May 2006
Сообщений: 5
Эти функции я знаю, у меня проблема в том, что я не знаю как сделать, что бы сначало увеличивался один, потом уменьшался до исходного размера, потом брался другой и т.д. и т.п.

ЗЫ. я пользовался протсо функцией random(), это сильно отличается от Math.round(Math.random()*7)?

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

Регистрация: Nov 2008
Сообщений: 528
Цитата:
Math.round(Math.random()*7)
Код AS1/AS2:
Math.floor(Math.random() * x); // даёт линейное распределение вероятности (но не выпадет сам X. максимум: X-1)
Math.round(Math.random() * x); // 0 и Х имеют половину вероятности выпадания по сравнению с остальными

Старый 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.
Старый 24.04.2009, 00:34
DEM90 вне форума Посмотреть профиль Отправить личное сообщение для DEM90 Найти все сообщения от DEM90
  № 6  
Ответить с цитированием
DEM90

Регистрация: May 2006
Сообщений: 5
Art_133, Большое спасибо!

ЗЫ. я бы делал так:
создал еще две переменные sizeX = _root['o'+clip]._xscale; и sizeY = _root['o'+clip]._yscale;. Они определяются в самом начале, а потом мы просто смотрим, если нынешний размер объекта равен этим двум, то останавливаем издевательства над этим и начинаем издеваться над следующим.

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

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

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


 


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


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