| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Flashtestdummy Registriert seit: Mar 2003
Beiträge: 153
|
moin, mich würde mal interessieren, wie es funktioniert, mit AS ein objekt von Punkt "x" nach punkt "a" zu bewegen. vorallem, wenn punkt "x" unbekannt ist, weil dynamisch. die "ganz normale" bewegung ist mir schon geläufig, aber wie kann ich dieser animation einen, vom motion tween bekannten, easiing (abbrems, bzw. beschleunigungs) effekt geben? das ist wohl hohe mathematik und da blick ich nicht durch. wär voll cool, wenn einer von euch das eventuell schonmal gemacht hat und mir die formel dafür geben könnte. vielen dank schonmal |
| | |
| | #2 (permalink) |
| aka stauby Registriert seit: Mar 2004 Ort: Würzburg
Beiträge: 705
| ActionScript:
Wobei du hier ganz einfach die Parameter für den x- und y-Wert des Ziels, sowie den Bremsfaktor wählen kannst.
__________________ "The things you own end up owning you." |
| | |
| | #3 (permalink) |
| Gast
Beiträge: n/a
|
Über das Thema findet man ganze Kapitel in Robert Penners "Progamming Macromedia Flash MX". Beispiele findet man auch unter www.robertpenner.com unter "easing equations".
|
|
| | #4 (permalink) |
| nerdig working Registriert seit: Jul 2001 Ort: Hamburg
Beiträge: 5.832
|
flash mx 2004 stellt da auch schon 2 tweenklassen mit easing-funktionen zur verfügung: ActionScript:
__________________ beat it | shake it | fish it | just pudding | love-o-meter flashforum sidebar installieren |
| | |
| | #5 (permalink) |
| Flashtestdummy Registriert seit: Mar 2003
Beiträge: 153
|
vielen dank schonmal für die hilfe. ich habe versucht es anzuwenden, bin aber nicht wirklich zu einem ergebnis gekommen, kann ich ein script nicht so schreiben: if (_root.jahreszahlAusgabe == 1911) { mc.onEnterFrame = function() { this._x += (this._x-500)/100; }; } ich habe es direkt auf den betreffenden MC gelegt. vielleicht sollte ich dazusagen, das dieser MC verschachtelt ist und nicht der container sich bewegen soll, sondern nur der betreffende MC innerhalb des containers. also steuere ich quasi den MC _root.container.mc1 damit an. |
| | |
| | #6 (permalink) |
| Flashtestdummy Registriert seit: Mar 2003
Beiträge: 153
|
moment!!! alles nochmal zurück. ich habe gerade doch noch geschafft, das sich der mc1 bewegt allerdings bewegt er sich willkürlich (zumindest kommt es mir so vor). script: if (_root.jahreszahlAusgabe == 1911) { setProperty(_root.container.mc1, _x, _root.container.mc1._x += (_root.container.mc1._x-0)/50); } kann es an der verschachtelung liegen? geht der ziel wert von der _root ebene aus oder dem _x wert innerhalb des container mcs? also um meine frage zu verdeutlichen: wie kann ich dem ding den genau sagen wo es hinsoll, also auf welche _x koordinate? und halt wie sag ich ihm das er dann da auch stehen bleiben soll. Geändert von Alex_R (30-08-2004 um 11:19 Uhr) |
| | |
| | #7 (permalink) |
| Gast
Beiträge: n/a
|
Du kannst die Werte doch im Testmodus testen. Gib einfach mal in deine Schleife ein paar traces ein, die dir dann die Werte zurückgeben, z.B. ActionScript:
|
|
| | #8 (permalink) |
| Flashtestdummy Registriert seit: Mar 2003
Beiträge: 153
|
setProperty habe ich auch schon rausgeschmissen. den onEnterFrame habe ich weggelassen, weil das "bewegungs-script" nicht mehr auf dem objekt sondern oben im frame der timeline liegt. muss ich den bei einem onEnterFrame keine pseudo schleife mit zwei frames machen? zu dem script, wo bleibt mein objekt den jetzt stehen? bei 50? und was ist wenn mein objekt nicht kleiner sondern grösser ist, dann müsste ich doch runterzählen. ich habe auch schonmal weitergebastelt und bin jetzt hier: //mc für versch. jahreszahlen definieren if (_root.jahreszahlAusgabe == 1911) { i = 1; } if (_root.jahreszahlAusgabe == 1912) { i = 2; } //mc verschieben if (_root.jahreszahlAusgabe>0) { if (_root.die_MCs["mc"+i]._x>99) { _root.die_MCs["mc"+i]._x -= _root.die_MCs["mc"+i]._x/20; } else if (_root.die_MCs["mc"+i]._x<101) { _root.die_MCs["mc"+i]._x += _root.die_MCs["mc"+i]._x/20; } } mein prblem hierbei ist nur, das der mc beginnt zu zittern, sobald er in die nähe von 100 kommt. da ja dann beides, permanent zutrifft. sowohl "if" als auch "else if". nur wenn ich direkt auf 100 prüfen, springt mir der mc meist an der 100 vorbei und schiesst dann entweder nach links oder rechts aus dem bild. =) strange |
| | |
| | #9 (permalink) |
| Flashtestdummy Registriert seit: Mar 2003
Beiträge: 153
|
da bin ich nochmal. diesmal würde mich interessieren, wer von euch schonmal ne beschleunigung mit einer sinuskurve berechtnet hat. einer berechnugn dieser art sollte es möglich machen, das man den MC auch wieder schön abbremst. ich muss ehrlich zugeben, das ist mir viel zu hohe mathematik. sowas habe ich noch nie verstanden. (auch nicht letzte nacht, als ich die ganze zeit drüber saß) ich hoffe jetzt, das einer von euch sowas schonmal gemacht hat und mir vielleicht die formel zur verfügung stellt. wäre echt super cool. vielen dank schonmal |
| | |
| | #10 (permalink) |
| aka stauby Registriert seit: Mar 2004 Ort: Würzburg
Beiträge: 705
|
Zwar noch nicht selbst gemacht, aber eindimensional ist das ganze ja mathematisch nicht so aufwendig. Ich gehe mal davon aus, du meinst nur das erste Viertel einer Sinus-Periode? Das hieße dann, dass der zurückgelegte Wert im Endeffekt der Amplitude entsprechen würde, und die Funktion nur ausgeführt werdne soll, wenn das Argument <= als Pi/2 ist. Hmm... und ich glaube, in Dimensionen ist da auch kein großer Unterschied. Dann sollte doch diese Formel in etwa den Zweck erfüllen: ActionScript:
(Nicht getestet, sondern eben aus dem Ärmel geschüttelt).
__________________ "The things you own end up owning you." |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |