PDA

Просмотр полной версии : одновременное перемещение movieClip-ов


velstyle
26.12.2008, 01:35
Подскажите пожалуйста, как сделать одновременное перемещение movieClip-ов. Имеется карта с zoom-ом, на нее динамически накладываются точки. Как сделать так, чтобы при уменьшении/увеличении и перетаскивании карты точки двигались пропорционально вместе с картой.

DigitalD
26.12.2008, 04:59
1) Создать клип-контейнер для точек и карты
2) поместить в клип-контейнер карту и поверх точки
3) при уменьшении/увеличении и перетаскивании менять масштаб/координаты клипа-контейнера

velstyle
26.12.2008, 12:46
Спасибо, получилось.
Только возникла проблема, что я не могу разграничить события onPress для разных movieClip-ов. Для основного контейнера пишу такой код
this.onPress = function(){
this.startDrag();
}
this.onRelease = function(){
stopDrag();
}
А для динамически созданного movieClip-a вот такой

this._parent.container.attachMovie("myMovieClip","newclip"+level,level);
this._parent.container["newclip"+level].p.onPress= function() {
trace('this');
this._parent.container["newclip"+level].startDrag();
};

При нажатии на элемент Р перетаскивается весь контейнер, а нужно чтобы перетаскивался только элемент Р
Что не так?
Может что-то с синтаксисом?

Nata_cher
26.12.2008, 13:21
дак основной контейнер и двигается.... до внутреннего mc дело не доходит.
попробуйте закомментировать события основного койтейнера, и тогда должны двигаться только внутренние...

velstyle
26.12.2008, 13:35
В том то и дело, что когда мышка в области основного контейнера, нужно чтобы двигался он и все элементы на нем. А когда мышка находится в локальной области встроенного в этот контейнер мувика, нужно чтобы двигался только этот мувик (который по размерам гораздо меньше, чем основной контейнер).
Грубо говоря, есть карта, на нее наносятсся динамически точки, нужно обеспечить синхронное передвижение карты с точками И ОТДЕЛЬНО передвижение точек внутри области карты

iNils
26.12.2008, 13:39
Схема такая: Два клипа, контейнер и фон. Один над другим.
Клик по фону тянет фон и контейнер. Клик по клипу в контейнере, тянет только сам клип.

velstyle
26.12.2008, 14:07
Сделала два клипа контейнер и фон (одинакового размера) фон выше контейнера. Как отличить клик по фону от клика по контейнеру, ведь всегда срабатывает клик по фону т.к. он выше?

iNils
26.12.2008, 14:12
Фон на то и фон, чтобы быть ниже. Так почему он у вас выше?

velstyle
26.12.2008, 15:10
Делаю фон ниже, пишу

fon.onPress = function(){
fon.startDrag();
}

fon.onRelease = function(){
stopDrag();
}

fon.onReleaseOutside = function(){
stopDrag();
}

Карта выше, двигается только фон .. как их вместе связать (карту, фон и пимпы и чтобы в полях можно было делать записи)?
Исходник прилагаю
21166

iNils
26.12.2008, 15:20
через onMouseMove

velstyle
26.12.2008, 15:25
Сделала через onMouseMove, вообще не работает (и пимпы не двигаются и карта не перетаскивается) =(

iNils
26.12.2008, 15:27
Последний ваш пост из серии "Забиваю гвоздь, а он не забивается. Что я делаю не так?"
Что именно вы сделали с onMouseMove?

velstyle
26.12.2008, 15:33
Заменила onPress на onMouseMove. Хотя понимаю, что делаю что-то не так

iNils
26.12.2008, 15:44
import mx.utils.Delegate;
////
fon.onPress = Delegate.create (this, onPressFon);
fon.onRelease = Delegate.create (this, onReleaseFon);
fon.onReleaseOutside = Delegate.create (this, onReleaseFon);
////
function onPressFon () {
fon.startDrag ();
onMouseMove = onMoveFon;
}
function onReleaseFon () {
fon.stopDrag ();
delete onMouseMove;
}
function onMoveFon () {
container._x = fon._x;
container._y = fon._y;
}

velstyle
26.12.2008, 16:10
:drinks:
Супер
Спасибо

Nata_cher
26.12.2008, 16:49
iNils, как всегда респект :)

velstyle
28.12.2008, 15:48
После реализации того, что обсуждалось выше, на карту накладываются movieClip, в которых есть поля (input, textarea) При наведении мышки на поля курсор меняет вид (как для вставки текста) а текст вставить нельзя. Из-за чего это может быть?

DigitalD
29.12.2008, 09:28
Вы используете динамические текстовые поля с выделяемым текстом. Используйте поля в которых текст выделить нельзя. Для этого сделайте не "нажатой" кнопку selectable на панели свойств текстового поля.

WebMama
29.01.2009, 15:40
Делаю фон ниже, пишу

fon.onPress = function(){
fon.startDrag();
}

fon.onRelease = function(){
stopDrag();
}

fon.onReleaseOutside = function(){
stopDrag();
}

Карта выше, двигается только фон .. как их вместе связать (карту, фон и пимпы и чтобы в полях можно было делать записи)?
Исходник прилагаю


velstyle, Вам удалось решить проблему с картой? Если да, поделитесь, пожалуйста итоговым кодом :)