Просмотр полной версии : Клик и даблКлик
_pkiller_
29.06.2006, 05:11
делаю карту, смысл такой. что при дабл клике выделялся определнный квадрат карты. при клике на другой квадрат, выделение с предыдущего квадрата должно сниматься и выделяется кликнутый квадрат. Сама карта немного больше той области в которой она показывается, сдвиг карты осуществляется мышкой, схватил - перетащил. Все как бы получается,но есть одна проблема, когда квадрат выделен и я пытаюсь перетащить карту - выделение снимается, пытался по разному решить данную проблему, пока никак. Прошу помощи.
Код отвечающий за выделение квадрата следующий
kvadrat.onMouseDown = function() {
this.ramka._visible = false;
if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
firstClick = getTimer();
if ((firstClick-secondClick)<300) {
this.ramka._visible = true;
}
secondClick = getTimer();
}
};
Можеть быть будут мысли, как это реализовать другим способом
У меня есть подобный готовый проектhttp://mainmaps.com/asia/kz/astana
Только для прорисовки квадрата, круга и т.д. справа есть панель.
Прорисовка обьекта - кнопки "квадрат", "круг", "полигон".
Выделение/перемещение - кнопка "стрелка".
Удаление выделеннного - клава "дел" при нажатой "стрелке".
Считать из базы - кнопка"папка" .
Записать обьекты в базу - кнопка "дискета" .
В приведенном вами фрагменте кода по моему вся проблема в том, что проверяется только "маусДаун".
Когда происходит перетаскивание - также задействуется "маусДаун".
и сразу выполняется код :this.ramka._visible = false;
По моему у вас выделение должно сниматься при любом нажатии мыши на карте, а не только при перетаскивании.
Покажите код перетаскивания.
_pkiller_
30.06.2006, 02:41
эту проблему я вижу, и понимаю почему происходит снятие выделения при перетаскивании, но по другому не получается. по крайней мере у меня. иначе не происходит снятие/выделение области при клике на квадрат карты.
Перетаскивание стандартное, в пределах заданной области
on (rollOver) {
this.useHandCursor = false;
}
on (press) {
this.startDrag(false, 40, 110, 560, 390);
}
on (release) {
this.stopDrag();
}
Похоже придется отказаться от "стартДраг/стопДраг" и разобрать составляющие перетаскивания на мелкие части. Давайте исходник, желательно только с вышеприведенным и ничем лишним не перегруженный, я прямо на нем и отлажу.
Или если будете сами, то нужно отделить перетаскивание от клика. Один из путей - постоянная проверка происходит перетаскивание ( изменение координат ) или нет.
_pkiller_
30.06.2006, 04:46
а можно услышать саму идею?) отказаться от идеи перетаскивания мышкой конешно можно, до этого так и было, но слишком уж удобно мышкой это делать, нежели тыкать на кнопки перемотки карты. хотелось бы совместить приятное с полезным. Спасибо за предложение поковырятся в моем исходнике))) Думаю что и сам справлюся, тока надо разобраться чего и как)
Я не говорю об отказе от перетаскивания мышкой - я говорю только об отказе использовать для перетаскивания "стартДраг/стопДраг".
....Спасибо за предложение поковырятся в моем исходнике))) Думаю что и сам справлюся....А я не буду специально создавать тестовый пример для отладки. Делал аналогичное месяцев 10 назад - точный код не помню.
Успехов.
_pkiller_
30.06.2006, 05:50
помоему я понял) надо сделать перемотку карты в соответствии с положением мышки) без клика на карту. Вот и идея, осталося реализовать, еще раз спасибо за идею.
а в ActionScript 3.0 есть событие MouseEvent.DOUBLE_CLICK =)
_pkiller_
30.06.2006, 06:39
будем все вместе ждать)) нет чтобы хитрую мыслю предложить))
чего ждать?
Flash 9 Alpha вышел
Flash Player 9 вышел (релиз)
Flex 2 вышел
_pkiller_
30.06.2006, 09:27
и где все это добро взять можно?) опа, вижу ссылочку) пошел читать)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.