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

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

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

Регистрация: Aug 2012
Сообщений: 108
По умолчанию принцип работы startDrag bounds

Здравствуйте, никто не может поделиться куском кода где описывается startDrag? Что-то я не нашел у себя во флеше. Либо интересует принцип работы bounds - как вычисляются границы за которые нельзя выходить?

Например, мой код получается несовсем рабочий, вот думаю, у них позаимствовать. Думаю, надо либо добавлять поиск по модулю, либо мин/макс значения (посмотрел в другом примере)

Код AS3:
var rect:Rectangle = getContentRegion();
 
var W:int = rect.bottomRight.x;
var H:int = rect.bottomRight.y;
 
var X:Number = (_content.x < rect.x) ? rect.x : (_content.x > W) ? W : _content.x;
var Y:Number = (_content.y < rect.y) ? rect.y : (_content.y > H) ? H : _content.y;
 
if (X != _content.x || Y != _content.y)
{
   _content.x = X;
   _content.y = Y;
}

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

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
границы вы вычисляете сами, в разных случая по разному
нужно представить в голове прямоугольник который лежит на родителе, за его пределы нельзя вытащить объект
вот к примеру мой текущий код:
не позволяет вытаскивать объект за пределы visibleRect
Код AS3:
protected function downHandler(event:MouseEvent):void
{
       // view.maxX / view.maxY - размер таскаемого объекта
       // visibleRect - видимая область экрана
       // Check sizes.
	if ( view.maxX > visibleRect.width )
	{
		view.dragRect.x = - (view.maxX - visibleRect.width);
		view.dragRect.width = view.maxX - visibleRect.width;
	}
	else
	{
		view.dragRect.x = (visibleRect.width-view.maxX)/2;
		view.dragRect.width = 0;
	}
	if ( view.maxY > visibleRect.height )
	{
		view.dragRect.y = - (view.maxY - visibleRect.height);
		view.dragRect.height = view.maxY-visibleRect.height;
	}
	else
	{
		view.dragRect.y = ( visibleRect.height - view.maxY ) / 2;
		view.dragRect.height = 0;
	}
	// Need to limit drag coords. 
	view.startDrag( false, view.dragRect );
}

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

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

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


 


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


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