![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Цитата:
Ладно....Обясню по русски. У меня уже много чего написанно. И вдруг мне понадобилось, чтобы объект при получении какогото события знал, такскаеться он сейчас или нет. Я конечно могу при startDrag запомнить, что мы начали его таскать... НО, я никак не могу отловить момент, когда его перестают тоскать. Почему? А потому, что этот момент может наступить, когда начнут тоскать что-нибудь другое. Все ваши варианты предполагают полный проход по всему коду. Или всех переонаследовать, что не совсем корректно, кода я использую чужие классы. Или найти все вхождения startDrag и написать там какое-нибудь "запоминание" (неважно менаджер это или флажок). А я хочу достичь эффекта "малой кровью". |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 467
|
Цитата:
Блин, небыло времени все расписывать, но вижу придется! (Пишу все находу без проверки на работоспособность - извиняйте за ошибки) // 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. |
|
|||||
|
to 2morrowMan: Тогда у меня к тебе второй вопрос, как твою штуку внедрить к кучу классов. Мне что везде вместо startDrag писать myDrager.startDrag? Я это делать не особо хочу потому что
Цитата:
|
|
|||||
|
стервочка (я мужик)
|
ну обычно люди прежде чем писать кучу классов думают, что им это грозит, а потом уже пишут. процесс называется "проектирование". либо написав эту кучу классов выбрают из предложенных решений и реализовывают. или сами находят эти решения. врят ли человек написавший кучу классов придёт на форум с вопросом "как таскать мувик"
|
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
>Все ваши варианты предполагают полный проход по всему коду
Кошмар. А что нет такого пункта в меню как "найти в файлах"? |
|
|||||
|
Регистрация: Sep 2006
Сообщений: 256
|
Цитата:
__________________
:emocry: |
|
|||||
|
Цитата:
Кстати, запостил комент в LifeDoc с предложением о внесении такого метода (isDragged) в стандарт. Авось появиться в следующей версии. Особое спасибо lowka, за описание примерного соотношения классов в AS3. Скорее всего применю вариант из третьего поста. Так как начался флейм с поучением как "проектировать" и как искать по файлам, то предлагаю админам закрыть тему, дабы не плодить флуд. Спасибо всем откликнувшимся. |
|
|||||
|
стервочка (я мужик)
|
жесть
в первом послу небыло условия: "лень править кучу классов" ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|