webForumDet fria alternativet

flytta en sak i taget (hitTest, MouseMove...)

Flash

8 svar · 353 visningar · startad av KalleWarrior

Medlem sedan mars 200618 inlägg
Frågan#1

Jag håller fortfarande på med mitt spel, jag använder ett mc som muspekare och scripten är uppbyggda enligt förljande (och ligger i muspekar-mc:t):

onClipEvent (mouseDown) {
if (this.hitTest(_root.movieclip1)) {
_root.movieclip1.onMouseMove = function(){
_root.movieclip1._x = _root._xmouse;
_root.movieclip1._y = _root._ymouse;
}
}
}

sen finns movieclip2, movieclip3 osv scriptade på samma sätt som ovan, och jag vill kunna plocka upp ett movieclip i taget och dra dom dit de ska, men problemet är att man med muspekaren kan plocka upp flera av movieclipen på samma gång, och ha flera objekt fästa vid sig samtidigt. Jag vill bara att man ska kunna flytta ett i taget, alltså att när man redan har MouseMove-funktionen ovan igång så ska det inte gå att ta tag i något av de andra movieclipsen förrän man har släppt av det första. Går det att fixa på något sätt?

Medlem sedan juni 2000974 inlägg
#2

Men du ska döpa varje movieclip till ett eget namn. Är det gjort så nu?

Medlem sedan mars 200618 inlägg
#3

Ja, alla movieclip har egna namn.

Medlem sedan juni 2000974 inlägg
#4

Då borde det väl fungera tycker jag.
Funktionen säger ju att det är movieclip nr. 1 här: _root.movieclip1._y = _root._ymouse;

Sedan måste det ju vara movieclip 2 osv...
Då borde det inte fungera att flytta flera objekt samtidigt

Medlem sedan mars 200618 inlägg
#5

ja.. men det är mer att när man väl har "plockat upp" ett movieclip med hitTest och MouseDown, så går det att plocka upp de andra movieclipen också, innan man har flyttat det första movieclipet dit det ska. för själva MouseMove-funktionerna fungerar ju som de ska, det är bara att jag skulle vilja ha något som gör att man måste släppa det movieclipet man håller på med innan man kan plocka upp nästa.
det är svårt att förklara...

Medlem sedan juni 2000974 inlägg
#6

Ska man kunna släppa moviclippet man håller i, för att sedan byta till ett annat? Eller ska du se till att movieclipet är på en vissa plats innan du kan ta nästa? Och givetvis ska man bara kunna ta ett movieclip i taget, eller?

Medlem sedan juni 2000974 inlägg
#7

Gör ett movieclip och kallar det drag.
Gör ett movieclip och kalla det hit.
På dragmovieclipet (när du har lagt det på första framen på huvusscenen)lägger du in följande:

onClipEvent (load) {
startX = this._x;
startY = this._y;
}
onClipEvent (mouseDown) {
if (_root.drag.hitTest(_root._xmouse, _root._ymouse)) {
_root.draggedDrag = true;
}
}
onClipEvent (enterFrame) {
if (_root.draggedDrag) {
_root.drag._x = _root._xmouse;
_root.drag._y = _root._ymouse;
}
}
onClipEvent (mouseUp) {
if (this.hitTest(_root.hit)) {
_root.draggedDrag = false;
_root.gotoAndPlay (2);
_root.drag._x = startX;
_root.drag._y = startY;
} else {
_root.drag._x = startX;
_root.drag._y = startY;
_root.draggedDrag = false;
}
}

Du kan lägga in dina 2 movieclip på första framen i huvudtimelinen och sätt ett stop där.
Sedan kan du om du vill göra en keyframe till och lägga in någon grafik eller ett annat movieclip. Gör ett stop där också.
När droptestet är True så går det till nästa frame.

Medlem sedan mars 200618 inlägg
#8

Tack, jag ska kolla upp det där närmare i morgon! :D

kände att det blev lite för sent nu.. godnatt, och tack för hjälpen.

Medlem sedan juni 2000974 inlägg
#9

Här kan du få mer hjälp:
http://www.cs.waikato.ac.nz/~mhall/126/Prac10.pdf

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)