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

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

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

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
По умолчанию Проверка курсора, за сценой, внутри сцены.

Всем привет, подскажите, как можно проверить положение курсора, внутри сцены курсор или курсор вне сцены?

Добавлено через 14 минут
я хочу сделать проверку на перетаскивание объекта, если объект отпустили за пределами сцены, объект возвращается в исходную позицию.
в ас 2.0 это было так
Код AS1/AS2:
a_mc.onPress=function(){
	startDrag(a_mc);
	x0=this._x;
	y0=this._y;
}
 
a_mc.onRelease=function(){
	stopDrag();
}
 
a_mc.onReleaseOutside=function(){
	stopDrag();
	this._x=x0;
	this._y=y0;
}

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Событие Event.MOUSE_LEAVE - мышь покидает окно флэш-плеера (точнее сцену).
А onReleaseOutside не имел к этому ни малейшего отношения. Это - когда кнопку мыши ОТПУСКАЮТ не на том объекте, на котором НАЖАЛИ.
__________________
Reality.getBounds(this);

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

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
вот как можно сделать проверку, что бы объект выпущенный за сценой, возвращался назад?
Код AS3:
package 
{
    import flash.display.Sprite;
    import flash.events.MouseEvent;
 
    public class DragAndDrop extends Sprite 
	{	
		private var _obj;
 
        public function DragAndDrop() 
		{
			_obj = new Obj();
			stage.addChild(_obj);
			_obj.addEventListener(MouseEvent.MOUSE_DOWN, drag);
			_obj.addEventListener(MouseEvent.MOUSE_UP, drop);          
        }
 
		private function drag(evt:MouseEvent):void
		{
			_obj.startDrag();
		}
 
		private function drop(evt:MouseEvent):void
		{
			_obj.stopDrag();
		}
    }
}

Старый 20.07.2010, 13:25
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 4  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,723
Код AS3:
package
{
	import flash.display.Sprite;
	import flash.events.MouseEvent;
 
	public class DragAndDrop extends Sprite
	{
		private var _obj;
		private var startX:int;
		private var startY:int;
 
		public function DragAndDrop()
		{
			_obj = new Obj();
			stage.addChild(_obj);
			_obj.addEventListener(MouseEvent.MOUSE_DOWN, drag);
			_obj.addEventListener(MouseEvent.MOUSE_UP, drop);
			_obj.addEventListener(Event.MOUSE_LEAVE, leaveHandler);
		}
		private function leaveHandler(e:Event):void {
			e.target.stopDrag();
			e.target.x = startX;
			e.target.y = startY;
		}
		private function drag(evt:MouseEvent):void
		{
			startX = e.target.x;
			startY = e.target.y;
			_obj.startDrag();
		}
 
		private function drop(evt:MouseEvent):void
		{
			_obj.stopDrag();
		}
	}
}
Могут быть ошибки, ибо писал прям в форууме

Старый 20.07.2010, 14:20
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 5  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
а есть ли альтернатива событию onReleaseOutside в as 3.0, поскольку вышепреведенные варианты никак не подошли(

Старый 20.07.2010, 14:23
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 6  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,723
Вам нужно именно, чтобы при отпускании мыши смотрелось наличие курсора на сцене?

Старый 20.07.2010, 14:24
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 7  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
не совсем, главное что бы перетаскиваемый объект возвращался в исходную позицию, если этот объект был "брошен" за сценой флэшки


Последний раз редактировалось Dr_Bra; 20.07.2010 в 14:27.
Старый 20.07.2010, 14:36
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 8  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,723
Не понял, каким чудесным образом у вас LEAVE_MOUSE стал MouseEvent
Вложения
Тип файла: rar DragAndDrop.rar (455 байт, 67 просмотров)

Старый 20.07.2010, 14:48
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 9  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Код AS3:
protected var mouseLeft:Boolean = false;
 
			protected function init():void
			{
				stage.addEventListener( Event.MOUSE_LEAVE, mouseLeave );
			}
 
			protected function mouseLeave( event:Event ):void
			{
				mouseLeft = true;
				stage.addEventListener( MouseEvent.MOUSE_MOVE, mouseMove );
			}
 
			protected function mouseMove( event:MouseEvent ):void
			{
				mouseLeft = false;
				stage.removeEventListener( MouseEvent.MOUSE_MOVE, mouseMove );
			}
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^


Последний раз редактировалось Nirth; 20.07.2010 в 14:56.
Старый 20.07.2010, 14:53
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 10  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
Но все таки, onReleaseOutside, больше подходит, попробуйте перетащить желтый круг за сцену и бросить его, вот такой же эффект нужно получить


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

Теги
внутри , курсор , положение , сцены
Опции темы
Опции просмотра

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

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


 


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


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