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

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

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

Регистрация: Oct 2007
Адрес: Гродно
Сообщений: 67
Отправить сообщение для krolser с помощью Skype™
По умолчанию Как определить, перетаскиваеться в данный момент объект с помощью startDrag или нет.

Как определить, перетаскиваеться в данный момент объект с помощью startDrag или нет?

Это написано в документации на StartDrag

Цитата:
Lets the user drag the specified sprite. The sprite remains draggable until explicitly stopped through a call to the Sprite.stopDrag() method, or until another sprite is made draggable. Only one sprite is draggable at a time.
Т.е. получаеться, что одновременно может перемещаться с помощью startDrag только один объект, поэтому с помошью флажка отследить нереально, из за того, что при начале перетягивая нового объекта предыдущий перетягиваемый автоматически остановиться.

Может есть какое то свойство у кого нибудь, или события типа dragged?

Старый 16.10.2007, 19:58
Ostgur вне форума Посмотреть профиль Отправить личное сообщение для Ostgur Посетить домашнюю страницу Ostgur Найти все сообщения от Ostgur
  № 2  
Ответить с цитированием
Ostgur
 
Аватар для Ostgur

Регистрация: Apr 2004
Адрес: macromedia—adobe Любит: Flash MX
Сообщений: 2,860
проверь меняются ли координаты относительно тех, пока не взял на drag, а вообще нет isDragged.


Последний раз редактировалось Ostgur; 16.10.2007 в 20:04.
Старый 16.10.2007, 22:13
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 3  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
а унаследовать класс от спрайта и переопределить свойство startDrag и stopDrag?

Код:
private static var _dragged:Sprite;

public function get dragged():Boolean {
return ( this === _dragged );
}

public override function startDrag():void {
_dragged = this;
super.startDrag();
}
public override function stopDrag():void {
super.stopDrag();
_dragged = null;
}

что-то типа того.


Последний раз редактировалось etc; 16.10.2007 в 22:30.
Старый 17.10.2007, 12:18
krolser вне форума Посмотреть профиль Отправить личное сообщение для krolser Найти все сообщения от krolser
  № 4  
Ответить с цитированием
krolser
 
Аватар для krolser

Регистрация: Oct 2007
Адрес: Гродно
Сообщений: 67
Отправить сообщение для krolser с помощью Skype™
Спасибо всем ответившим.

to Ostgur: вообще не понял, что ты пердлагаешь.

to BlooDHounD: Идея хорошая и даже очень правильная, но.... для её реализации мне все мои классы придётся отнаследовать от моего Апгрейднутого sprite. Вот в этом то и загвоздка. Ведь иногда мне нужно наследоваться не только от Sprite, но и от MovieClip, который будет лишен этой функциональности.

Так что вопрос остаётся открытым.

Я пытался переопреелить эти функции у прототипа Sprite. Но у меня ничего не получилось. Просто с прототипами я на "..... твою мать". Может кто знает, как правильно это сделать.

Старый 17.10.2007, 12:57
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Ну сделай апгрейденный MovieClip =)

Старый 17.10.2007, 12:58
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 6  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
в АС3 с портотипами так просто не поработаешь

Старый 17.10.2007, 13:30
2morrowMan вне форума Посмотреть профиль Отправить личное сообщение для 2morrowMan Найти все сообщения от 2morrowMan
  № 7  
Ответить с цитированием
2morrowMan
 
Аватар для 2morrowMan

Регистрация: Aug 2007
Сообщений: 467
Как вариант:
Код:
var dragSprite:Sprite = null;
...
public function dragSprite(spr:Sprite):void
{
	dragSprite = spr;
	spr.startDrag();
}

public function dropSprite(spr:Sprite):void
{
	spr.stopDrag();
	dragSprite = null;
}

public function isDraging(spr:Sprite):Boolean
{
	return (dragSprite && (dragSprite == spr));
}
Если будут перетаскиваться несколько объекто, то делаешь:
Код:
var dragSprites:Array = [];
// ну и т.д. :)


Последний раз редактировалось 2morrowMan; 17.10.2007 в 13:32.
Старый 17.10.2007, 13:49
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 8  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
несколько объектов не могут драгаться что бы драгать несколько объектов, необходимо писать свой драгманагер

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

Регистрация: Oct 2007
Адрес: Гродно
Сообщений: 67
Отправить сообщение для krolser с помощью Skype™
Цитата:
Сообщение от __etc
Ну сделай апгрейденный MovieClip =)
Это проблемы не решает. А вдруг мне надо, а мне и надо, использовать сторонние компоненты, которые уж точно не будут наследоваться от моего Апгрейднутого MovieClip.

to 2morrowMan: Смотри внимательно третий пост в этой тебе. В нем хоть наследование есть, а у тебя нету. НО всё равно спасибо, что отклинкнулся.

Цитата:
Сообщение от BlooDHounD
в АС3 с портотипами так просто не поработаешь
А можно по подробнее, почему так просто не получиться?

Вопрос всё еще открыт. И теперь он преобретает еще более интересный окрас. А можно ли вообще сделать то, о чем я говорю?

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Заведи себе драг менеджера, отдельным классом, и обращайся примерно так:
Код:
// вместо startDrag
DragManager.currentDrag = mySprite;
// вместо stopDrag
DragManager.currentDrag = null;
ну а внутри статик геттер-сеттер..

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

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

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


 


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


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