ERLEDIGT
NEIN
NEIN
ANTWORTEN
0
0
ZUGRIFFE
158
158
EMPFEHLEN
-
Hallo @ll,
ich habe ein Problem.
Lege auf einem Objekt mehrere Objekte ab. Nun will ich diese zoomen, bzw. wieder rauszoomen.
Das größte und unterste Object merkt sich in einem Array welche Objekte darauf liegen.
Folgender Algorithmus funktioniert zwar, aber irgendwie verschieben sich die abgelegten Objecte immer ganz komisch, so dass sie sogar über die grenzen des unteren Objekts „hinauswandern“.
Ich habe schon verschiedenes ausprobiert, aber leider nicht geschafft, dass die Verhältnisse korrekt bleiben..
Was mache ich hier falsch? Liegt an einem geometrisch falschen Gedanken?
Nehmen wir erst mal das Reinzoomen. Screens_ar sind die untersten Objecte abgelegt, die darauf liegenden sind jeweils im Array assigned;
hier habe ich versucht, die differenz der Objecte im Voraus zu speichern/ im unteren Code auskommentiert.
Code :1 2 3 4 5 6 7
for (var m = 0; m< screens_ar.length; m++) { for (var n = 0; n < screens_ar[m].assigned.length; n++) { screens_ar[m].assigned[n].zoomDiffX = screens_ar[m].assigned[n].x - screens_ar[m].x; screens_ar[m].assigned[n].zoomDiffY = screens_ar[m].assigned[n].y - screens_ar[m].y; } }
Das sollte die Lösung sein.. Den Zoomout part lasse ich jetzt mal weg.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
function zoomIn(iconEvent:MouseEvent) { trace("try to zoomIn"); for (var i = 0; i < screens_ar.length; i++) { for (var j = 0; j < screens_ar[i].assigned.length; j++) { var diffX:Number = screens_ar[i].assigned[j].x - screens_ar[i].x; var diffY:Number = screens_ar[i].assigned[j].y - screens_ar[i].y; trace(" screens_ar[i].assigned "+ screens_ar[i].assigned[j].name); screens_ar[i].assigned[j].scaleX += 0.1; screens_ar[i].assigned[j].scaleY += 0.1; //screens_ar[i].assigned[j].x = screens_ar[i].assigned[j].x + screens_ar[i].assigned[j].zoomDiffX * (screens_ar[i].scaleX ) * 0.1 ; //screens_ar[i].assigned[j].y = screens_ar[i].assigned[j].y + screens_ar[i].assigned[j].zoomDiffY * (screens_ar[i].scaleY ) * 0.1; screens_ar[i].assigned[j].x = screens_ar[i].assigned[j].x + diffX * 0.1; screens_ar[i].assigned[j].y = screens_ar[i].assigned[j].y + diffY * 0.1; screens_ar[i].assigned[j].publicRedrawMyLines(); } screens_ar[i].scaleX += 0.1; screens_ar[i].scaleY += 0.1; trace("screens_ar[i].scaleY "+screens_ar[i].scaleY); trace("screens_ar[i].scaleX "+screens_ar[i].scaleX); scaleSize = screens_ar[i].scaleX; } }
Vielen Dank für Hilfe und Anregung im Voraus!
Lg,
hugo
Ähnliche Themen
-
objekte verschwinden beim zoomen
Von a-tom im Forum Autodesk Maya (ehemals Alias)Antworten: 4Letzter Beitrag: 30.11.09, 12:46 -
[AS3] Spiegelung mehrerer Objekte
Von SCIPIO-AEMILIANUS im Forum Flash PlattformAntworten: 0Letzter Beitrag: 18.05.09, 20:47 -
Material mehrerer Objekte deaktivieren
Von digital art im Forum Cinema 4DAntworten: 10Letzter Beitrag: 21.01.09, 15:54 -
Import mehrerer Objekte möglich?
Von Wayan im Forum 3D Studio MaxAntworten: 3Letzter Beitrag: 19.10.08, 10:54 -
Deserialisierung mehrerer Objekte (Shapes)
Von Hansguck im Forum JavaAntworten: 5Letzter Beitrag: 12.12.07, 22:19





Zitieren
Login





