Форум 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, 14:59
krolser вне форума Посмотреть профиль Отправить личное сообщение для krolser Найти все сообщения от krolser
  № 6  
Ответить с цитированием
krolser
 
Аватар для krolser

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

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

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

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

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

Регистрация: Aug 2007
Сообщений: 467
Цитата:
Сообщение от krolser
to 2morrowMan: Смотри внимательно третий пост в этой тебе. В нем хоть наследование есть, а у тебя нету.
Причем тут наследование?
Блин, небыло времени все расписывать, но вижу придется!
(Пишу все находу без проверки на работоспособность - извиняйте за ошибки)

Код:
// Drager.as
package 
{
	public class Drager // DragManager, называй как хочешь
	{
		private var target:Sprite = null;
		
		public function DragMgr()
		{
		}

		public function dragSprite(spr:Sprite):void
		{
			target = spr;
			spr.startDrag();
		}

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

		public function isDraging(spr:Sprite):Boolean
		{
			return (target && (target == spr));
		}
	}
}
Код:
// somewhere...
import Drager;
...
var myDrager = new Drager();
...
function onMouseDown(event:MouseEvent):void
{
	if (event.currentTarget is Sprite)
		myDrager.dragSprite(event.currentTarget);
}

function mouseReleased(event:MouseEvent):void {
{
	myDrager.dropSprite(event.currentTarget);
}
...
function someFunc()
{
	trace(myDrager.isDraging(mySomething));
}


Последний раз редактировалось 2morrowMan; 17.10.2007 в 16:22.
Старый 17.10.2007, 16:51
krolser вне форума Посмотреть профиль Отправить личное сообщение для krolser Найти все сообщения от krolser
  № 8  
Ответить с цитированием
krolser
 
Аватар для krolser

Регистрация: Oct 2007
Адрес: Гродно
Сообщений: 67
Отправить сообщение для krolser с помощью Skype™
to 2morrowMan: Тогда у меня к тебе второй вопрос, как твою штуку внедрить к кучу классов. Мне что везде вместо startDrag писать myDrager.startDrag? Я это делать не особо хочу потому что
Цитата:
Сообщение от krolser
Это проблемы не решает. А вдруг мне надо, а мне и надо, использовать сторонние компоненты

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

Регистрация: Sep 2006
Сообщений: 256
Цитата:
Сообщение от krolser
Я это делать не особо хочу потому что:
Цитата:
Сообщение от krolser
А вдруг мне надо, а мне и надо, использовать сторонние компоненты
99.9% визуальных компонентов имеют в цепочке наследования flash.display.Sprite. 0.01% оставлена для компонентов, порожденных композиций (не встречал таких -- полагаю, что это изначально тупиковая ветвь). А заменять sprite.startDrag на dragManager.startDrag(sprite) всеравно придется.
__________________
:emocry:

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

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

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

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

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


 


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


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