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

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

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

Регистрация: Jul 2005
Сообщений: 35
По умолчанию скорость передвижения клипа

День добрый джентельмены.Разбираю тут одну задачку,в которой клип по щелчку мыши перемещается к ее курсору.Код следующий :

MovieClip.prototype.slideTo = function (leaderX,leaderY,speed) {
if (this._x != leaderX && this._y != leaderY) {
this.onEnterFrame = function () {
var deltaX= this._x-leaderX;
var delyaY= this._y-leaderY;
var dist=Math.sqrt((deltaX*deltaX)+(deltaY*deltaY));
var moveX=speed*(deltaX/dist);
var moveY=speed*(deltaY/dist);
if (speed>=dist) {
this._x = leaderX;
this._y = leaderY;
delete this.onEnterFrame;
} else {
this._x-=moveX;
this._y-=moveY;
}
}
}
}
ball_mc.onMouseDown=function () {
this.slideTo(_root._xmouse,_root._ymouse,10);
}


Но вот фигня в том,что скорость перемещения никак не меняется.....хоть 10 задай,хоть 10000 или 0.0001...можно вообще параметр не задавать,он почему-то никак не влияет....Как же все-таки сделать параметр скорости действующим?

Старый 27.07.2005, 18:04
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Код работает, но в нем была опечатка (пометил красным).
Код:
MovieClip.prototype.slideTo = function (leaderX, leaderY, speed) {
	if (this._x != leaderX && this._y != leaderY) {
		this.onEnterFrame = function () {
			var deltaX = this._x - leaderX;
			var deltaY = this._y - leaderY;
			var dist = Math.sqrt ((deltaX * deltaX) + (deltaY * deltaY));
			var moveX = speed * (deltaX / dist);
			var moveY = speed * (deltaY / dist);
			if (speed >= dist) {
				this._x = leaderX;
				this._y = leaderY;
				delete this.onEnterFrame;
			} else {
				this._x -= moveX;
				this._y -= moveY;
			}
		};
	}
};
mc.onMouseDown = function () {
	this.slideTo (_root._xmouse, _root._ymouse, 1);
};
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Jun 2005
Адрес: Kharkov
Сообщений: 63
Отправить сообщение для Nео с помощью ICQ
исправь в строке var delyaY:Number = this._y-leaderY;
переменную delyaY на deltaY
__________________
The matrix has you...

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

Регистрация: Jun 2005
Адрес: Kharkov
Сообщений: 63
Отправить сообщение для Nео с помощью ICQ
2iNils:
Опередил ))
__________________
The matrix has you...

Старый 27.07.2005, 19:32
Whatsername вне форума Посмотреть профиль Отправить личное сообщение для Whatsername Найти все сообщения от Whatsername
  № 5  
Ответить с цитированием
Whatsername

Регистрация: Jul 2003
Адрес: Петербург
Сообщений: 432
Объясните двоечнику, в каком классе учат:
Код:
var moveX = speed * (deltaX / dist);
И как эта теорема называется?
Спасибо.

UPD: Двоечник - это я. Что бы никто бы ничего бы.
__________________
Папа просил передать вам всем, что театр закрывается. Нас всех тошнит.


Последний раз редактировалось Whatsername; 27.07.2005 в 19:52.
Старый 28.07.2005, 11:26
Fokker вне форума Посмотреть профиль Отправить личное сообщение для Fokker Найти все сообщения от Fokker
  № 6  
Ответить с цитированием
Fokker

Регистрация: Jul 2005
Сообщений: 35
var moveX = speed * (deltaX / dist); // енто распределение скорости по осям

Джентельмены, как всегда...благодарен

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

Регистрация: Jul 2003
Адрес: Петербург
Сообщений: 432
Цитата:
Сообщение от Fokker
енто распределение скорости по осям
Это я понимаю. В учебнике за какой класс это написано? Из чего это следует?
__________________
Папа просил передать вам всем, что театр закрывается. Нас всех тошнит.

Старый 28.07.2005, 13:02
Fokker вне форума Посмотреть профиль Отправить личное сообщение для Fokker Найти все сообщения от Fokker
  № 8  
Ответить с цитированием
Fokker

Регистрация: Jul 2005
Сообщений: 35
брат, я не знаю в каком классе это проходят,могу с уверенностью сказать,что в первом и во втором в учебниках этого точно нет.а в чем суть вопроса я не въеду?
принципиально что? (учебник?автор?школьный класс?).а следует все это из пропорций и формулы время=расстояние/скорость

Старый 28.07.2005, 13:17
Whatsername вне форума Посмотреть профиль Отправить личное сообщение для Whatsername Найти все сообщения от Whatsername
  № 9  
Ответить с цитированием
Whatsername

Регистрация: Jul 2003
Адрес: Петербург
Сообщений: 432
уга-уга! глюкануло меня чуток. все же очевидно =)) спасибки.
__________________
Папа просил передать вам всем, что театр закрывается. Нас всех тошнит.

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

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

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


 


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


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