![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Aug 2003
Сообщений: 204
|
в общем делаю сейчас карту территориальную, столкнулся с двумя проблемами:
1) Карта большая и тягается драг мувиком, но драг по умолчанию привязывает центр мува к мышке, как сделать так чтоб при тягании я мог брать мышкой карту в той точке в которой хочу и тянуть с неё куда хочу ? 2) как ограничить координаты что бы мувик с картой не могли вытащить в экран при драге |
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
2 DJ_Baton:
1. Может я ошибаюсь, но такой пример может быть вполне в справке Флеша. А вообще ведь никто не запрещает вам узнать координаты, в которых мышь щёлкнула по мувиклипу. Не используйте Drag, используйте событие, вызываемое при движении мыши для обновления координат мувиклипа. На этом принципе основан один из методов реализации пользовательских курсоров: // Для тестирования этого кода необходимо,
// чтобы в Библиотеке был символ с Linkage идентификатором "pointer_id".
this.attachMovie("pointer_id", "pointer_mc", this.getNextHighestDepth());
Mouse.hide();
var mouseListener:Object = new Object();
mouseListener.onMouseMove = function() {
pointer_mc._x = _xmouse;
pointer_mc._y = _ymouse;
updateAfterEvent();
};
Mouse.addListener(mouseListener);
PS: Учитесь задавать вопросы...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого Последний раз редактировалось Хемуль; 10.10.2006 в 19:51. |
|
|||||
|
Во время нажатия мышки на клип, нужно сохранить разность координат клипа и указателя, а потом, до тех пор, пока кнопка не будет отжата, обновлять координаты клипа как (координаты мыши+сохранённая разность). Ничего трудного не вижу. Стандартный драг - зло.
__________________
(А) |
|
|||||
|
меценат
|
this.karta.onPress = function() {
startDrag(this);
}
_root.onMouseUp = function() {
_root.stopDrag();
};
ramcaXleft = 100;
ramcaXright = 450;
this.ramca.onEnterFrame = function() {
if (this._x<=ramcaXleft) {//условие проверки границы координаты по левому краю
this._x = ramcaXleft;
}
if (this._x>=ramcaXright) {//условие проверки границы координаты по правому краю
this._x = ramcaXright;
}
};
this.ramca.onMouseDown = function() {
//условие хватания
if ((_root._xmouse>=(this._x-(this._width/2))) && (_root._xmouse<=(this._x+(this._width/2))) && (_root._ymouse>=(this._y-(this._height/2))) && (_root._ymouse<=(this._y+(this._height/2)))) {
startDrag(this);
}
};
//
_root.onMouseUp = function() {
_root.stopDrag();
};
Старо как мир ... еще кординаты какието отлавливать ![]()
__________________
Безвыходных положений небывает © Барон Мюнхаузен=)Исходники Последний раз редактировалось D12; 10.10.2006 в 22:29. |
|
|||||
|
Регистрация: Aug 2003
Сообщений: 204
|
Можете скинуть исходник плиз ?
|
|
|||||
|
Modus ponens
|
2 D12:
Оба варианта, прям скажем, не фонтан... по крайней мере второму пожеланию автора они никак не удовлетворяют - такую карту, как ты предложил, можно вытащить за пределы зоны просмотра, а это как раз и нужно избежать. 2 DJ_Baton: Первый параметр startDrag() как раз и показывает, а нужно ли привязывать центр перетаскиваемого клипа к мыше или нет. Но у использования startDrag() есть свои недостатки, поэтому чаще предпочтительнее сделать свой аналог этого метода. Т.е. как уже сказали выше: по onPress регистрировать координаты мыши, включать onEnterFrame, в нем проверять смещение мыши и соответсвенно делать перерасчет координат. По onReleas'у соответсвенно убивать onEnterFrame. (Вместо onEnterFrame можно использовать любую функцию которая будет циклически проверять смещение мыши, onMouseMove удобнее тем, что функция не будет включаться если юзер не двигает мышой)
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Aug 2003
Сообщений: 204
|
Вот выложил исходник, кто разбирается помогите плиз -
http://moderndonbass.com/Flash/map.zip а то я не очень шарю в AS так только азы... ![]() |
|
|||||
|
Цитата:
если нравится, то качаем исходник, разбираемся, вносим свои изменения/дополнения и т.д. http://mainmaps.com/000/mapwithpanzoomandselection.rar Я не советую надеяться, что вам кто-то даст полностью готовый исходный код. Я делаю карты постоянно более 1,5 лет и то, чтобы запустить вашу карту мне нужно дня три. Важные замечания: 1.Сделайте поднайм Флеш-кодера. Карты-не самое сложное, но и не самые простые проекты. 2.Ваша графика не будет работать гладко при перетаскивании и масштабировании. С ней еще много работы ( чисто с графикой ). Посте добавления имен улиц и обьектов на карту - тормоза станут просто ужасающими. 3.Полностью поддерживаю тех, кто предлагает отказать от ДраГа. Последний раз редактировалось valvika; 11.10.2006 в 16:51. |
|
|||||
|
Регистрация: Aug 2003
Сообщений: 204
|
большое спасибо, интересный исходник, качаю
|
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
Цитата:
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|