[flash 5] MovieClip vloeiend naar Click positie

Pagina: 1
Acties:

  • mark_vb
  • Registratie: Maart 2002
  • Laatst online: 03-10-2025
Ik zit nu al een tijdje te knutselen om dit voor elkaar te krijgen. Het doel is dus dat je ergens in de Clip kunt klikken, waarna een andere gewenste movieclip in een rechte baan met constante snelheid naar die x_mouse en y_mouse van de click komt.

zoals het nu is komt het neer op dit:
in de root:

clipnaam_x = getProperty (_root.clipnaam, _x);
clipnaam_y = getProperty (_root.clipnaam, _y);

in de clip waarop geklikt wordt:

onClipEvent (mouseDown) {
setProperty ("_root.clipnaam", _x, _xmouse);
setProperty ("_root.clipnaam", _y, _ymouse);
}


maar zoals je ziet springt de clip zo meteen over naar de click positie, zonder een vloeiende baan af te leggen van "oude" naar click positie.... Weet iemand hier iets op te vinden?

Artstation: https://www.artstation.com/markvanberkel7 | Oeroude CG showreel: www.markvanberkel.com


  • OzBoz
  • Registratie: Maart 2000
  • Laatst online: 17-08 13:58

OzBoz

.:.H.:.I.:.P.:.

Probeer een er een delay in te frunnikken waardoor ie bij elke stap een paar ms wacht of verdeel je script over twee frames

My Fizion | My 3D prints | LinkedIn


  • mark_vb
  • Registratie: Maart 2002
  • Laatst online: 03-10-2025
OzBoz schreef op 18 september 2002 @ 21:19:
Probeer een er een delay in te frunnikken waardoor ie bij elke stap een paar ms wacht of verdeel je script over twee frames
Een delay is geen optie helaas, er is op dit moment namelijk maar 1 stap, en dat is het veranderen van de coordinaten van de clip met die van de muis.

Het verdelen over meerdere frames zal geen vloeiende baan geven, en heeft veel weg van een noodoplossing...

Artstation: https://www.artstation.com/markvanberkel7 | Oeroude CG showreel: www.markvanberkel.com


Verwijderd

MarK_vB schreef op 18 september 2002 @ 21:46:
[...]


Een delay is geen optie helaas, er is op dit moment namelijk maar 1 stap, en dat is het veranderen van de coordinaten van de clip met die van de muis.

Het verdelen over meerdere frames zal geen vloeiende baan geven, en heeft veel weg van een noodoplossing...
voor een vloeiende beweging heb je meerdere frames nodig dan wel een onClipEvent()-constructie.. is geen ontkomen aan.
om het geheel vloeiend te animeren kan je het beste een interpolatie-functie schrijven die je aanroept wanneer je klikt.

Verwijderd

In het clipevent EnterFrame moet je met een vast aantal pixels naar de target (x, y) toebewegen (de verhouding van x/y moet dus de verhouding van de horizontale/vertikale afstand van de movieclip tot de target zijn) tot hij de target bereikt heeft. De target is dus de coordinaten x en y waar geklikt is.

Je kunt trouwens geen vloeiende beweging met 1 frame maken :P Als je nog een andere timeline hebt lopen dan kun je het in een andere clip stoppen met 1 enkele frame die herhaald wordt.

  • mark_vb
  • Registratie: Maart 2002
  • Laatst online: 03-10-2025
Verwijderd schreef op 19 september 2002 @ 00:38:
Je kunt trouwens geen vloeiende beweging met 1 frame maken :P Als je nog een andere timeline hebt lopen dan kun je het in een andere clip stoppen met 1 enkele frame die herhaald wordt.
dat was ook niet wat ik bedoelde met dat het me een noodoplossing leek, om enterframe (of welke beweging dan ook) te laten werken heb ik sowieso 2 frames nodig, , maar het script "verdelen" over frames leek me een andere zaak.

Wat ik ook geprobeerd heb is het bepalen van de afstand tussen target en clip (bv. clipnaam_x - _xmouse) en vervolgens te delen en af te trekken van clipnaam_x, op deze manier:

setProperty ("_root.clipnaam", _x, clipnaam_x - (_xmouse - clipnaam_x)/10);

probleem met deze methode is dat ik in de eerste plaats natuurlijk nooit precies op het target kan komen aangezien n/m nooit 0 kan zijn... en daarmee uiteindelijk genoegen genomen te hebben kreeg ik een zeer ongewenst effect, waarbij de clip niet bewoog naar de target maar oversprong naar de linkerbovenhoek en onbegrijpelijk bewoog....

Artstation: https://www.artstation.com/markvanberkel7 | Oeroude CG showreel: www.markvanberkel.com


  • mutsje
  • Registratie: September 2000
  • Laatst online: 26-08 10:05

mutsje

Certified Prutser

waarom zet je er niet een transparent layer overheen met op 1 punt een transparent button eronder. met een motion tween erachter blablabla..

Verwijderd

Misschien heb je hier iets aan!

code:
1
2
3
4
5
6
//smooth
function getsmoothprogress(p){
    return ((-2*p*p*p) + (3*p*p));
}

_root.cursor._x=start+(pauze-start)*getsmoothprogress(frame/frames);


;)
Pagina: 1