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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

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

Регистрация: May 2004
Сообщений: 7
По умолчанию нестандартный Drag'&'Drop

помогите пожалуйста решить такую проблему:
мне нужно сделать так, чтобы мувик (точку), можно было таскать не в прямоугольной области, а по определенной линии (например, по окружности).
я вот тут пытался что-то сам написать, но как то странно работает.
представляю на ваш суд:
_root.point_mc.onPress=function(){
this.startDrag(true, x0-radius,this._y,x0+radius,this._y);
this.onMouseMove=function(){
this._y=Math.sqrt(radius*radius-(this._x-x0)*(this._x-x0))+y0;
this.stopDrag();
this.startDrag(true, x0-radius,this._y,x0+radius,this._y);
}
/* (x0,y0) -координаты центра окружности, по которой будем таскать мувик point_mc
radius - радиус этой окружности */
_root.point_mc.onRelease=fuction(){
this.stopDrag();
}


это конечно не по окружности будет движение, а по полуокружности, но даже не это важно.
не работает обработчик onRelease.
то есть мувик не отпускается, а продолжает таскаться за мышкой.
объясните пожалуйста, в чем дело.
а лучше предложите более эффективный код.

Старый 22.05.2004, 23:18
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
вариант
Код:
r=100;
y0=x0=200;
point_mc.onPress=function(){
	this.onEnterFrame=function(){
		var fi=Math.atan2(_ymouse-y0,_xmouse-x0);
		this._x=x0+r*Math.cos(fi);
		this._y=y0+r*Math.sin(fi);
	}
}

point_mc.onRelease=point_mc.onReleaseOutside=function(){
	delete this.onEnterFrame;
}

Старый 23.05.2004, 00:46
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 3  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
Вариант другой - создать изображение области перетаскивания, просто нарисовав его и превратив в клип. Потом постоянно сверять на совпадение мыши и этой области через hitTest() (в случае с мышью совпадение будет очень даже точным). Это если надо сделать в определенных нестандарных границах. В противном случае - вариант silin-а как раз.
__________________
За двумя зайцами погонишься - от егеря по морде получишь

Старый 23.05.2004, 15:01
hulio вне форума Посмотреть профиль Отправить личное сообщение для hulio Найти все сообщения от hulio
  № 4  
hulio

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

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

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

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


 


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


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