PDA

Просмотр полной версии : как перетаскивать объекты только в конкретное место координату


xotdog
01.12.2009, 23:05
помогите новичку я перетаскиваю объект к любую точку
on (press) {
this.startDrag(false);
}
on (release) {
this.stopDrag ( );
}и при отпускании он там остается
а как сделать чтоб он только в точке x100 y100 оставался
а если в любой другой я его оставляю чтоб он оказался в том месте где я его брал. заранее спасибо!

donphp
02.12.2009, 05:19
Я сомневаюсь что пользователь сможет перетащить обьект точно в точку 100 100
Ты уверен что именно этого хочеш?

on (press) {
this.beforx = this._x;
this.befory = this._y;
this.startDrag(false);
}

on (release) {
if(this._x !=100 or this._y != 100){
this._x = this.beforx;
this._y = this.befory;
}
this.stopDrag ( );
}

xotdog
02.12.2009, 12:12
я хочу чтобы вставала в область 100 100 +-10 пикселей

Zik.
02.12.2009, 13:03
Пример сделал

P.S: CS3

xotdog
05.12.2009, 14:24
спасибо большое! а можно как-нибудь сделать чтобы тот фрейм который я беру и перетаскиваю становиля на передний план а то при перетаскивании не красиво получается объект прячется под другим объектом в этом же слое

Zik.
05.12.2009, 15:05
нужный_клип.getNextHighestDepth();

Chuck607
05.12.2009, 15:06
попробуй my_clip.swapDepths(this.getNextHighestDepth());

xotdog
05.12.2009, 15:21
не работает (((

Chuck607
05.12.2009, 15:33
Напиши код, как ты прописываешь swapDepths?

xotdog
05.12.2009, 15:39
on (press) {
qwe.swapDepths(this.getNextHighestDepth());
id=1;

this.beforx = this._x;
this.befory = this._y;
this.startDrag(false);
for (i=1; i<15;i++)
{
if (this.beforx==Xmas8[i] and this.befory==Ymas8[i])
PrevId=i;
}
q=0;
w=0;
fl=0;

}

Chuck607
05.12.2009, 15:46
Попробуй просто this.getNextHighestDepth();

Zik.
05.12.2009, 16:00
твою мать
опять код в кнопке
поэтому и не работает

xotdog
05.12.2009, 17:52
этот код у меня не в кнопке!

Добавлено через 2 минуты
в фрагменте ролика и перетаскивание работает а на передний план нет((((

Chuck607
05.12.2009, 18:11
Если я правильно понял нужно, чтобы перетаскиваемый объект всегда выходил на передний план ?

Zik.
05.12.2009, 22:53
этот код у меня не в кнопке!

Добавлено через 2 минуты
в фрагменте ролика и перетаскивание работает а на передний план нет((((
Тот код, который вы привели на первой странице просто не может работать в фрагменте ролика

Добавлено через 1 минуту
давайте исходник

NoCD
06.12.2009, 12:25
attachMovie("mc1,"mc1",1)
mc1._x = 100
mc1._y = 100
mc1.flag = true

attachMovie("mc2","mc2",2)
mc2._x = 300
mc2._y = 300
mc2.flag = true

mc1.onRelease = function(){
if(this.flag){this.startDrag();this.flag = false}else{this.stopDrag();this.hit_mc();this.flag = true}
}

MovieClip.prototype.hit_mc = function(){
//измерим расстояние от центра детальки до места соединения
trace(this)
dx = this._x - mc2._x;
dy = this._x - mc2._y;
dist = Math.sqrt(dx*dy+dy*dy);

//проверяем расстояние
//если расстояние меньше 20 пикселей то помещаем его к месту соединения
if(dist < 20) {
this._x = mc2._x;
this._y = mc2._y;
}

}


где mc1 - MovieClip(размещенный в библиотеке) детальки, которую мы будем перемещать
mc2 - MovieClip(размещенный в библиотеке) прибор, к которому надо приделать детальку (mc1)

Делаем функцию hit_mc методом MovieClip - а, для того, что бы без труда можно было передавать все настройки (свойства клипа mc1)детали при коннекте с каким либо устройством.

Или вообще можно просто обычную функцию сделать, аргументом которого будет имя детальки(mc1)

как то вот так

xotdog
06.12.2009, 17:07
Если я правильно понял нужно, чтобы перетаскиваемый объект всегда выходил на передний план ?

да правильно!

xotdog
06.12.2009, 17:49
вот в этом примере мне нужно чтобы перетаскиваемый объект выходил на передний план

Zik.
06.12.2009, 18:02
Пример

xotdog
06.12.2009, 18:09
спасибо большое