| |||||||
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) |
| Neuer User Registriert seit: Jan 2003 Ort: Bochum
Beiträge: 8
| Zentrierung bei Zoom über _xscale
Hallo liebes Flashforum, zerbrech mir gerade den Kopf um folgendes Problem zu lösen. Ich habe eine Europakarte die stufenlos zoombar ist und dazu auch noch gleichzeitig ständig verschoben werden kann. Die maximalen Grenzen zum Verschieben zu definieren ist mir noch gelungen, mein Problem ist nur, dass ich es nicht hinbekomme, die Karte bei Zoomveränderungen automatisch auf den jeweils aktuellen Kartenmittelpunkt zu zentrieren. Ich habe meine kleine exemplarisches Demofile einmal angehängt, vielleicht seh ich gerade nur den Wald vor lauter Bäumen nicht ! Vielen Dank im voraus für Eure Posts !!! Bis Dann Orry |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Sep 2003
Beiträge: 43
|
hatte vor kurzem das gleiche problem ... und noch prikelnder wird es, wenn ma es dann endlich geschafft hat mit dem zentrieren ... dann taucht auch noch ein zusätzliches problem auf: was ist, wenn du am rand des bildes bist und dann auszoomst... soll man dann den kartenrand sehen und dieser im mittelpunkt bleiben, oder soll der kartenrand kontinuierlich am bildrand bleiben? ergo: bei minimaler zoomstufe bist du wieder in der mitte...... nun gut: meine lösung: ich habe mehrere schaltflächen für scrollen und zommen - genaueres must du selbst lösen... jedenfalls legen die den zoom und den scrollfaktor fest ... und dann ist da ein bild, das bearbeitet werden soll mc_bildplatzhalter (eigentlich sind es immer 2 im wechsel, aber du brauchst ja nur eine - anderes problem *hmpf*).... und dann ist da folgenes script this.onEnterFrame = function(){ //zoomen //abfragen der zoomstufe if (zoombefehl == 1) {zoomfaktor=(zoomfaktor+0.02*zoom);}; if (zoombefehl == -1) {zoomfaktor=(zoomfaktor-0.02*zoom);}; if (zoombefehl == 10) {zoomfaktor=(zoomfaktor+0.2*zoom);}; if (zoombefehl == -10) {zoomfaktor=(zoomfaktor-0.2*zoom);}; if (zoomfaktor < 1){zoomfaktor =1;}; //eingrenzung der zoomstufe if (zoomfaktor > 242.20){zoomfaktor =242.20;}; //1000%(ziel)/3.7313(das sind 2500/670)-25.8(das sind670/2500*100-1) zoom=zoomfaktor+25.8; //1+25,8 = 26,8 ... 670/2500*100 ---> hierzu folgendes 670pixel ist das ding auf der bühne gross und 2500pixel hat das bild ... ergo bei 26,8% passt mein 2500pixel bild auf die 670 pixel bühne ---> maximal ausgezoomt zoomposition=zoom/26.8 zoomanzeige="zoom "+(int(zoom*3.7314))+"%"; //hiermit zeige ich den aktuellen zoomfaktot an //scrollen //abfragen des scrollstatus if (scrollbefehl ==1){xposition=xposition+(100/zoom);} if (scrollbefehl ==10){xposition=xposition+(1000/zoom);} if (scrollbefehl ==-10){xposition=xposition-(1000/zoom);} if (scrollbefehl ==-1){xposition=xposition-(100/zoom);} if (scrollbefehl ==-6){yposition=yposition-(100/zoom);} if (scrollbefehl ==6){yposition=yposition+(100/zoom);} if (scrollbefehl ==-60){yposition=yposition-(1000/zoom);} if (scrollbefehl ==60){yposition=yposition+(1000/zoom);} //plan-instanz zoomen mc_bildplatzhalter2.mc_bild.plan._xscale=zoom; mc_bildplatzhalter2.mc_bild.plan._yscale=zoom; // den fixpunkt der bühne bestimmen (manuell breite und höhe der bühne) fixpunktx2=670 fixpunkty2=670 // breite und höhe der plan-instanz abfragen breite2=mc_bildplatzhalter2.mc_bild.plan._width; höhe2=mc_bildplatzhalter2.mc_bild.plan._height; // grenzen der planinstanz festlegen --- jeweils der rand xminusgrenze2=((fixpunktx2/2-breite2/2)+xposition*zoomposition)+315; xplusgrenze2=((fixpunktx2/2-breite2/2)+xposition*zoomposition)+315+breite2; yminusgrenze2=((fixpunkty2/2-höhe2/2)+yposition*zoomposition)+25; yplusgrenze2=((fixpunkty2/2-höhe2/2)+yposition*zoomposition)+25+höhe2; // if ((xminusgrenze2<315)and(xplusgrenze2>985) and (yminusgrenze2<25)and(yplusgrenze2>695)) {//prüfung ob ränder innerhalb der bühne mc_bildplatzhalter2.mc_bild.plan._x=(fixpunktx2/2-breite2/2)+xposition*zoomposition; mc_bildplatzhalter2.mc_bild.plan._y=(fixpunkty2/2-höhe2/2)+yposition*zoomposition; }else{ //wenn ränder ausserhalb der bühne if (xminusgrenze2>315){ //prüfen der linken grenze 315 ist bildrand mc_bildplatzhalter2.mc_bild.plan._x=0 xposition=(mc_bildplatzhalter2.mc_bild.plan._x-(fixpunktx2/2-breite2/2))/zoomposition; }else{ if (xplusgrenze2<985){ //prüfen der rechten grenze 985=315+670 mc_bildplatzhalter2.mc_bild.plan._x=fixpunktx2-breite2; xposition=(mc_bildplatzhalter2.mc_bild.plan._x-(fixpunktx2/2-breite2/2))/zoomposition; }else{ //wenn doch innerhalb der rechten und linken grenze x position festlegen mc_bildplatzhalter2.mc_bild.plan._x=(fixpunktx2/2-breite2/2)+xposition*zoomposition; } } if (yminusgrenze2>25){ //prüfen der oberen grenze 25 ist bildrand mc_bildplatzhalter2.mc_bild.plan._y=0 yposition=(mc_bildplatzhalter2.mc_bild.plan._y-(fixpunkty2/2-höhe2/2))/zoomposition; }else{ if (yplusgrenze2<695){ //prüfen der unteren grenze 695=25+670 mc_bildplatzhalter2.mc_bild.plan._y=fixpunkty2-höhe2; yposition=(mc_bildplatzhalter2.mc_bild.plan._y-(fixpunkty2/2-höhe2/2))/zoomposition; }else{ mc_bildplatzhalter2.mc_bild.plan._y=(fixpunkty2/2-höhe2/2)+yposition*zoomposition; } } }; }; ich hoffe, du blickst da einigermassen durch .... ist nicht einfach ....viel zu viel mathematik..... gruss garf |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Jan 2003 Ort: Bochum
Beiträge: 8
| Vielen Dank !!!
Hallo Garf, vielen Dank für Deine ausführliche Antwort. Da hast Du ja ne Menge Zeit in Dein Skript investiert, ist für mich auf den ersten Blick auch aufgrund der Größe noch etwas undurchsichtig, aber werde mir das nochmal genauer anschauen. Dein Skript scheint mir nur relativ unflexibel zu sein, dass heißt Du arbeitest viel mit konstanten Werten, die nur auf Deine Karte zutreffen, was es natürlich auch schwerer macht den Durchblick zu bekommen. Aber ein wichtiger Punkt scheint mir zu sein, dass Du die Aufsplittung in zwei Mc`s vorschlägst. Ich schau mal. Also besten Dank Orry |
| | |
| | #4 (permalink) |
| ActionStripper Registriert seit: Nov 2001 Ort: Oldenburg
Beiträge: 3.275
|
hi orry, auch ich suche gerade nach einer lösung für das problem. wenn du schon was passendes erforscht hast, wäre es nett, wenn du's mich wissen ließest :-)
__________________ Design ist AUCH Geschmackssache. |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |