Drag&Drop

Technologia Flash, czyli animacja na potrzeby stron WWW to świat daleko odbiegły od zwykłego programowania i kodu. Zapytaj o pomoc i podziel się z nami Twoimi problemami z zakresu Flasha.
Radzioo
Posty: 1
Rejestracja: ndz gru 11, 2005 12:18 am
Lokalizacja: Dz-wo

Drag&Drop

Post autor: Radzioo »

Siemanko! Otórz problem jest następujący... Mam podstawowe ale niedokładne informacje na temat drag & drop. Czy ktoś mógłby mi wytłumaczyć jak to sie robi ale bardziej obrazowo?? z góry THX.
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

grag drop przeciąganie upuszczanie drag&drop

Post autor: Marek_bf »

Kod: Zaznacz cały

var px = drag_mc._x;
var py = drag_mc._y;
drag_mc.onPress = function() {
	this.startDrag(false, 0, 0, 350, 250);
};
drag_mc.onMouseUp = function() {
	this.stopDrag();
	if (eval(this._droptarget) == target1_mc) {
		drag_mc._x = px;
		drag_mc._y = py;
		trace("Klip upuszczony na MC target1_mc");
	} else if (eval(this._droptarget) == target2_mc) {
		drag_mc._x = px;
		drag_mc._y = py;
		trace("Klip upuszczony na MC target2_mc");
	}
};
Przyklad


O Drag:
http://livedocs.macromedia.com/flash/mx ... 01553.html

http://livedocs.macromedia.com/flash/mx ... 01553.html

O Drop:
http://livedocs.macromedia.com/flash/mx ... 01553.html
alko
Posty: 14
Rejestracja: ndz maja 06, 2007 7:18 pm

Re: Drag&Drop

Post autor: alko »

witam :)
mam pytanie apropo drag & drop :) tzn. mam animację z kilkoma elementami ... z jednym elementem nie ma problemu żeby się ruszał, ale nastepne stoją w miejscu :/
czy ktoś wie jak to zrobić żeby każdy element ruszał się niezależnie ?
wogóle jest to możliwe ?
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: Drag&Drop

Post autor: Marek_bf »

Wsadź te wszystkie animacje w jeden MC i jego draguj
alko
Posty: 14
Rejestracja: ndz maja 06, 2007 7:18 pm

Re: Drag&Drop

Post autor: alko »

no tak ... tylko wtedy wszystko chodzi razem ... zaraz wstawię przykład o co mi chodzi :) http://www.anta9.republika.pl/przyk.rar
narazie chodzi tam tylko warstwa jedna ... a chciałabym żeby niezależnie od tej "z serem" chodził też ten biały kwadrat w zależności od tego na co się naciśnie ... jak dam wszystko na jedno MC to chodzi całość ...
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: Drag&Drop

Post autor: Marek_bf »

Stosuj startDrag do obu obiektów:

Kod: Zaznacz cały

mc1.onPress = _startDrag;
mc1.onMouseUp = _stopDrag;
mc2.onPress = _startDrag;
mc2.onMouseUp = _stopDrag;
function _startDrag() {
	this.startDrag();
	this.onMouseMove = updateAfterEvent;
}
function _stopDrag() {
	stopDrag();
	delete this.onMouseMove;
}
alko
Posty: 14
Rejestracja: ndz maja 06, 2007 7:18 pm

Re: Drag&Drop

Post autor: alko »

DZIAŁA :D na poczatku nie mogłam zakumać o so chozi :D a ja zamiast na całą klatkę to na poszczególne mc dawałam te skrypty :D
DZIĘKI WIELKIE :wink:
teraz jeszcze muszę znaleźć jakiś kod żeby zrobić przycisk który umożliwi powrót wszystkich elementów na swoje miejsce :) ale to już chyba nie takie proste :D
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

drag

Post autor: Marek_bf »

alko
Posty: 14
Rejestracja: ndz maja 06, 2007 7:18 pm

Re: Drag&Drop

Post autor: alko »

dzięki wybawco :D
chociaż teraz się tam taki myk robi że warstwy się przestawiają i ta na którą klikam wychodzi na wierzch i jak klikam reset to ustawiają się w przypadkowej kolejności :D
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: Drag&Drop

Post autor: Marek_bf »

Usuń z kodu:

Kod: Zaznacz cały

this.swapDepths(++depth);
Duch111
Posty: 1
Rejestracja: śr sty 12, 2011 10:47 pm

Pomocy! Drag&Drop

Post autor: Duch111 »

witam! :-) Ktoś może pomóc? Temat niemal bliźniaczy do powyższego tylko że w tym przypadku chciałbym by "dragowany" obiekt wracał na pierwotną pozycję po zwolnieniu przycisku myszy : --->

Kod: Zaznacz cały

d.getDragableMC().onRelease = function(){
	d.stopDrag();
}

d.getDragableMC().onReleaseOutside = function(){
	d.stopDrag();
}

if (eval(garbage._droptarget) == _root.trash) {
   garbage._visible = false;
} else {
   garbage._x = x_pos;
   garbage._y = y_pos;
}
ODPOWIEDZ