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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.06.2008, 20:40
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 11  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
Во! Вот щас Вы рассказали просто СУПЕР! Все точно и ясно.
Ща буду трудиться. Вопрос такой когда Вам это нужно?
__________________
Случайность, господа, это знаете ли непознанная необходимость.

Старый 03.06.2008, 20:50
blacks вне форума Посмотреть профиль Отправить личное сообщение для blacks Найти все сообщения от blacks
  № 12  
Ответить с цитированием
blacks
[+3 17.12.07]
[+3 04.04.08]

Регистрация: Oct 2007
Сообщений: 42
Ого сколько этузиазма...
Прям не по себе стало - стыдновато...
Да особо не горит... после 3х днех безрезультатных мытарств совсем что-то расстроился ... как получиться.... по возможности...

СПАСИБИЩЕ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Старый 04.06.2008, 01:39
Vektor вне форума Посмотреть профиль Отправить личное сообщение для Vektor Найти все сообщения от Vektor
  № 13  
Ответить с цитированием
Vektor
 
Аватар для Vektor

Регистрация: May 2008
Адрес: Новокузнецк
Сообщений: 219
Записей в блоге: 1
В исходниках не нашел циклического движения.
Вот пример.
Код:
this.attachMovie("mc","mc1",this.getNextHighestDepth(),{_x:300, _y:200});
var f:Number = -1;
var G:Number = 300;
changeStr = function () {
	updateAfterEvent();
	mc1._x += f;
	if (mc1._x<=50) {
		mc1._x = G;
	}
};
setInterval(changeStr,10);
__________________
Книги и желание лучшие учителя.

Старый 04.06.2008, 09:36
blacks вне форума Посмотреть профиль Отправить личное сообщение для blacks Найти все сообщения от blacks
  № 14  
Ответить с цитированием
blacks
[+3 17.12.07]
[+3 04.04.08]

Регистрация: Oct 2007
Сообщений: 42
Цитата:
Сообщение от Vektor Посмотреть сообщение
В исходниках не нашел циклического движения.
Вот пример.
Спасибо. Примерчик полезный. Но пока так и не понял как в него все разом засунуть - блюры, альфы...

Старый 04.06.2008, 21:08
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 15  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
Уважаемый Blacks!
Не мог выйдти раньше на связь - Интернет заглючил (WI-FI).

Поэтому, если эта тема еще актуальна предлагаю свой вариант решения указанной Вами проблемы. Вот он:

Код:
import flash.filters.BlurFilter;

//Задаем начальную и конечную координату движения мува
var begX:Number = 400;
var endX:Number = 200;
//Задаем начальное и конечное время первой фазы (в миллисекундах)
var begTime_1:Number = 0; 
var endTime_1:Number = 2000;
//Задаем начальное и конечное время второй фазы (в миллисекундах)
var begTime_2:Number = 2000;
var endTime_2:Number = 4000;
//Задаем начальные и конечное время третьей фазы (в миллисекундах)
var begTime_3:Number = 4000;
var endTime_3:Number = 6000;
//Задаем качество Блюра
var quality:Number = 2;
//Рассчитываем уравнение линейного движения мува в зависимости от времени (т.е. X от Time)
//Тангенс угла наклона прямой
var k0:Number = (endX-begX)/(endTime_3-begTime_1);
//Свободный член (не половой, повторяю не половой 8-))
var b0:Number = begX-k0*begTime_1;
//--------------------------------------------------------------
//фаза 1
//--------------------------------------------------------------
//Задаем начальные и конечные значения блюра 1 фазы
var begBlur_1:Number = 10;
var endBlur_1:Number = 0;
//Рассчитывем линейные коэффициенты уравнений изменения Блюра
//Тангенс угла наклона прямой
var k1:Number = (endBlur_1-begBlur_1)/(endTime_1-begTime_1);
//Свободный член (что это Вы уже знаете)
var b1:Number = begBlur_1-k1*begTime_1;
//Задаем начальные и конечные значения альфы
var begAlpha_1:Number = 0;
var endAlpha_1:Number = 100;
//Рассчитывем линейные коэффициенты уравнений изменения альфы
//Тангенс угла наклона прямой
var k2:Number = (endAlpha_1-begAlpha_1)/(endTime_1-begTime_1);
//Свободный член
var b2:Number = begAlpha_1-k2*begTime_1;
//--------------------------------------------------------------
//фаза 3
//--------------------------------------------------------------
//Задаем начальные и конечные значения блюра 3 фазы
var begBlur_3:Number = 0;
var endBlur_3:Number = 10;
//Рассчитывем линейные коэффициенты уравнений изменения Блюра
//Тангенс угла наклона прямой
var k3:Number = (endBlur_3-begBlur_3)/(endTime_3-begTime_3);
//Свободный член (что это Вы уже знаете)
var b3:Number = begBlur_3-k3*begTime_3;
//Задаем начальные и конечные значения альфы
var begAlpha_3:Number = 100;
var endAlpha_3:Number = 0;
//Рассчитывем линейные коэффициенты уравнений изменения альфы
//Тангенс угла наклона прямой
var k4:Number = (endAlpha_3-begAlpha_3)/(endTime_3-begTime_3);
//Свободный член
var b4:Number = begAlpha_3-k4*begTime_3;



var filter:BlurFilter = new BlurFilter(begBlur_1, begBlur_1, quality);//Создаем Блюр фильтр. 1- качество
var filter_array:Array = [filter];
mc.filters = filter_array;
var newTime:Number = null;

this.onEnterFrame = function():Void
{
	newTime = getTimer();
	mc._x = k0*newTime+b0;
	if ((newTime>=begTime_1)&&(newTime<endTime_1))
	{
		setBlurParams(mc,k1*newTime+b1);
		mc._alpha = k2*newTime+b2;
	}
	if ((newTime>=begTime_3)&&(newTime<endTime_3))
	{
		setBlurParams(mc,k3*newTime+b3);
		mc._alpha = k4*newTime+b4;
	}
	if (newTime>=endTime_3) {delete this.onEnterFrame;};
}

function setBlurParams(mc:MovieClip, blur:Number):Void
{
	var filter_array = [];
	filter_array = mc.filters;
	filter_array[0].blurX = filter_array[0].blurY = blur;
	mc.filters = filter_array;
	delete filter_array;
}
В коде нет 2 фазы, т.е. она не контролируется, поскольку в ней не происходит ни каких изменений. Но если Вы захотите в этой фазе, что-либо менять, Вы можете сделать это по примеру 1 или 3 фазы.
Скорость движения, изменения блюра, альфы, все определяется блоком данных, с моими комментариями. Если что непонятно обращаейтесь. И еще я не стал делать переход на первый кадр (п.5 Вашего сценария). Я думаю Вы сможете сделать это и без моей помощи.

Исходник прилагается.

В исходнике код расположен на слое mc. Если Вам нужно разместить его на другом слое, например, actions, я думаю Вы это сделаете без труда.

Всего доброго!
Вложения
Тип файла: rar Прога Блеку.rar (5.0 Кб, 46 просмотров)
__________________
Случайность, господа, это знаете ли непознанная необходимость.

Старый 05.06.2008, 03:51
Vektor вне форума Посмотреть профиль Отправить личное сообщение для Vektor Найти все сообщения от Vektor
  № 16  
Ответить с цитированием
Vektor
 
Аватар для Vektor

Регистрация: May 2008
Адрес: Новокузнецк
Сообщений: 219
Записей в блоге: 1
Alex_beginner - Попробуйте свой код зациклить.
Я думал это будет не сложно, но как не прискорбно это звучит не смог этого сделать.
Кто ни будь, может это сделать, хотелось бы посмотреть, где не хватило моей логики или знаний.
Если бы, делал сам, делал по-другому и нашел бы решение данной задачи.
Но хочется посмотреть на решения этой задачи.
С уважением Vektor.

P.S. Кстати я вспомнил, как работает getTimer().
Вопрос: можно ли не убирая getTimer(), решить эту проблему.
Ответ: Мне кажется что нельзя.


Последний раз редактировалось Vektor; 05.06.2008 в 08:13.
Старый 05.06.2008, 08:21
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 17  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Непонятно нафиг вообще нужен таймер, если
Цитата:
по сценарию:
1. объект с самого начала мувика движеться только по горизонтали с постоянной скоростью
на расстояние допустим в 200 пикселей справа на лево.
Т.е. что Вы пиксели считаете, что время - для деления на фазы всеравно. Сказать "объект на 150-м пикселе" здесь всеравно что "объект на пятой секунде полета".
__________________
Reality.getBounds(this);

Старый 05.06.2008, 09:47
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 18  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
Wolsh! Не пиксели, а время!!! В последнем сценарии Blacks'a это прописано. Мув должен переместиться в 200 пикселей с лево на право за 6 секунд. Если Вы будете делить фазы в соотвествии с пространственными измерениями, то нет гарантии, что Вы достигнете 200 пиксельной отметки именно за 6 секунд.

Vektor!
На счет getTimer полностью с Вами согласен. Здесь как говориться пространственно-временной континиум 8-).
На счет зацикливания, я невидел в последнем сценарии Black'a зацикливания. Там есть пункт 5 - стоп/переход на первй кадр и стоп.
Вообще то мне это непонятно - два стопа, один переход )).

С Уважением,
Alex_beginner
__________________
Случайность, господа, это знаете ли непознанная необходимость.

Старый 05.06.2008, 11:31
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 19  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Wolsh! Не пиксели, а время!!!
Еще раз: без разницы. А если у Вас есть разница, значит код неверный.
И не надо цепляться к словам заказчика. Он может мерить проект хоть в попугаях.
Но сказано точно : см. ТЗ пункт 1. Если Вы считаете, что заказчику нужно не это...
__________________
Reality.getBounds(this);

Старый 05.06.2008, 11:45
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 20  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
Wolsh!
Цитата Black'а:

Цитата:
1. объект с самого начала мувика движеться только по горизонтали с постоянной скоростью
на расстояние допустим в 200 пикселей справа на лево.
Изначально у обьекта alpha=0%, blur=10(по Y и X).

2. в первые 2сек: анимация обьекта
из - alpha=0%, blur=10(по Y и X)
в - alpha=100%, blur=0(по Y и X)

3. след 2 сек объект просто продолжает двигаться.

4. последнии 2сек: анимация обьекта
из - alpha=100%, blur=0(по Y и X)
в - alpha=0%, blur=10(по Y и X)

5. стоп / переход на первый кадр и стоп
Прошу не разводить здесь демогогию - если Заказчик сказал, что нужно по времени все фазы распределять, значит нужно сделать по времени. Если посмотрев проект Black скажет, что его так не устраивает и нужно привязаться только к пространственным координатам, сделаю как он просит. А если мы желание Заказчика будем каверкать, то нашей помощи грош цена.
__________________
Случайность, господа, это знаете ли непознанная необходимость.

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

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

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


 


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


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