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

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

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

Регистрация: Oct 2007
Адрес: Гродно
Сообщений: 67
Отправить сообщение для krolser с помощью Skype™
Цитата:
Сообщение от Kikasso
Заведи себе драг менеджера, отдельным классом, и обращайся примерно так:
Код:
// вместо startDrag
DragManager.currentDrag = mySprite;
// вместо stopDrag
DragManager.currentDrag = null;
ну а внутри статик геттер-сеттер..
Не пойдет по описанным выше причинам.

Ладно....Обясню по русски.
У меня уже много чего написанно. И вдруг мне понадобилось, чтобы объект при получении какогото события знал, такскаеться он сейчас или нет. Я конечно могу при startDrag запомнить, что мы начали его таскать... НО, я никак не могу отловить момент, когда его перестают тоскать. Почему? А потому, что этот момент может наступить, когда начнут тоскать что-нибудь другое.

Все ваши варианты предполагают полный проход по всему коду. Или всех переонаследовать, что не совсем корректно, кода я использую чужие классы. Или найти все вхождения startDrag и написать там какое-нибудь "запоминание" (неважно менаджер это или флажок). А я хочу достичь эффекта "малой кровью".

Старый 17.10.2007, 16:19
2morrowMan вне форума Посмотреть профиль Отправить личное сообщение для 2morrowMan Найти все сообщения от 2morrowMan
  № 12  
Ответить с цитированием
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
  № 13  
Ответить с цитированием
krolser
 
Аватар для krolser

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

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

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
ну обычно люди прежде чем писать кучу классов думают, что им это грозит, а потом уже пишут. процесс называется "проектирование". либо написав эту кучу классов выбрают из предложенных решений и реализовывают. или сами находят эти решения. врят ли человек написавший кучу классов придёт на форум с вопросом "как таскать мувик"

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
>Все ваши варианты предполагают полный проход по всему коду
Кошмар. А что нет такого пункта в меню как "найти в файлах"?

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

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

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

Регистрация: Oct 2007
Адрес: Гродно
Сообщений: 67
Отправить сообщение для krolser с помощью Skype™
Цитата:
Сообщение от BlooDHounD
ну обычно люди прежде чем писать кучу классов думают, что им это грозит, а потом уже пишут. процесс называется "проектирование". либо написав эту кучу классов выбрают из предложенных решений и реализовывают. или сами находят эти решения. врят ли человек написавший кучу классов придёт на форум с вопросом "как таскать мувик"
Отправляю к первому посту. Мне кажеться там другой вопрос задавался, есть ссылка на документацию, не поленился даже сделать вольный перевод. Я задал серьёзный, стоящий вопрос. Он же не сводиться только к тасканию Sprite, он гораздо шире, как подменить функциональность стандартных классов AWM2, не прибегая к наследованию, чтобы остальные написаные классы (может даже не мною) даже не догадались, что что работает иначе.

Кстати, запостил комент в LifeDoc с предложением о внесении такого метода (isDragged) в стандарт. Авось появиться в следующей версии.

Особое спасибо lowka, за описание примерного соотношения классов в AS3.

Скорее всего применю вариант из третьего поста.

Так как начался флейм с поучением как "проектировать" и как искать по файлам, то предлагаю админам закрыть тему, дабы не плодить флуд.
Спасибо всем откликнувшимся.

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

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

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

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

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


 


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


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