Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-09-2006, 23:49   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Bern, Schweiz
Beiträge: 121
Zoomfunktion mit variablem Zoompunkt

Liebe Flash-Gemeinde

Ich tüftle nun schon seit über einem Tag an einer Zoom-Formel herum und kriegs nicht gebacken. Natürlich habe ich auch schon die Forum-Suche bemüht, doch entweder waren die Funktionen der anderen Lösungen grundverschieden, oder aber zu ungenau für meine Zwecke.
Nun konkret zu meinem Problem - oder eigentlich zwei:
1.
Wenn sich die Karte in der Ausgangslage befindet und ich dann an beliebiger Stelle hinein zoome funktioniert das perfekt. Sobald ich aber später an anderer Stelle wieder Zoome springt die Karte an einen falschen Ort. Das bedeutet, das Zoom-Zentrum befindet sich nicht mehr unter dem Cursor/Lupe.
2.
Beim heraus zoomen passiert etwas ähnliches. Zur Zeit zoomt die Karte einfach immer aus dem Zentrum heraus. Es wäre aber schön, wenn sie aus der aktuellen Vergrösserung heraus zoomen würde.
Nett zu haben aber nicht so wichtig wäre auch, wenn sich die Karte beim auszoomen wieder im Zentrum des sichtbaren Bereichs befinden würde.

Das seitwärts Scrollen funktioniert hingegen einwandfrei.

Das ganze ist ein kleines GIS (Geo Information System), mit DB-Daten via XML und funktioniert sonst recht gut. Beim angehängten fla habe ich aber alles für die Zoom-Funktionen nicht relevante entfernt. Bei Interesse werde ich das vollständige fla privat mailen.

Für eure Hilfe wäre ich sehr dankbar.
Angehängte Dateien
Dateityp: zip ch_zoom.zip (19,8 KB, 47x aufgerufen)
__________________
Remo

****************
strengen denkt an!
****************
Remo ist offline   Mit Zitat antworten
Alt 08-09-2006, 00:15   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
nimm 2 mc's ineinander
eins nur fürs positionieren und eins nur zum zoomen.

ziemlich veraltet, geht aber immer noch ;-)
http://www.seibsprogrammladen.de/fra...ispiele/flash5
-> Lummerland
Zoomen mit Auswahlrechteck
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 11-09-2006, 10:36   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Bern, Schweiz
Beiträge: 121
Unhappy

Hallo hgseib

Vielen Dank für deine Antwort.
Wenn der Zoom-Mittelpunkt immer schön im Zentrum des sichtbaren Bereichs liegen sollte, dann wäre das bestimmt eine gute Lösung.
Doch bei meiner Variante soll sich das Zoom-Zentrum immer genau da befinden wo sich beim Zoomen auch der Cursor befindet.
Vielleicht habe ich deinen Ansatz nicht komplett verstanden, aber ich denke, dass diese Problematik damit bestehen bleibt.
Hast du vielleicht ein Beispiel oder hat sonst jemand eine Lösung?

Gruss und Dank, Remo
__________________
Remo

****************
strengen denkt an!
****************
Remo ist offline   Mit Zitat antworten
Alt 12-09-2006, 12:00   #4 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Bern, Schweiz
Beiträge: 121
Kann mir niemand helfen? Das Problem hatten bestimmt schon viele.
__________________
Remo

****************
strengen denkt an!
****************
Remo ist offline   Mit Zitat antworten
Alt 12-09-2006, 14:55   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
du willst dir nicht helfen lassen :-(
bei meinem beispiel (das ZIP, dass man bei dem link laden kann unter -> Lummerland) wird zwar per auswahlrechteck - ansonsten aber immer da gezoomt, wo man will. das mit den 2 mc's ineiander geht nämlich klasse ... ;-)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 14-09-2006, 12:06   #6 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Bern, Schweiz
Beiträge: 121
Unhappy

hallo hgseib

...dochdoch, ich möchte mir schon helfen lassen und bin dir für deine Hilfe sehr dankbar. Leider Hilft mir das Beispiel bei meiner Problemlösung jedoch nicht weiter, denn das Problem ist, dass beim Zoomen sich der zu zoomende Kartenausschnitt immer genau unter dem Cursor befinden soll und nicht wie in deinem Beispiel in der Bühnenmitte. Die Position einfach um _xmouse und _ymouse zu verschieben bringt dann aber das Problem mit sich, dass bei erneutem zoomen von einer anderen Position aus alles aus den Rudern gerät.
Ich steh bei der Sache wirklich mächtig auf dem Schlauch und wäre wirklich sehr froh wenn mir jemand helfen könnte.
__________________
Remo

****************
strengen denkt an!
****************
Remo ist offline   Mit Zitat antworten
Alt 14-09-2006, 13:21   #7 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
"..und nicht wie in deinem Beispiel in der Bühnenmitte.."
?????
nie und nimmer hasst du dir mein beispiel angesehen. es wird der bereich gezoom, den man mit dem auswahlrechteck einrahmt. aber egal ..

dann kann ich dir leider nicht weiter helfen. vielleicht meldet sich noch jemand anderes zu wort.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 14-09-2006, 13:36   #8 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Bern, Schweiz
Beiträge: 121
Ich versuche es nochmals genau zu erklären.
Wenn ich in deinem Beispiel mit dem Auswahlviereck einen Bereich im Bild wähle, dann erscheint genau dieser Auschnitt (was ja korrekt ist) in der Mitte des Anzeigebereichs. Da ich aber kein Auswahlviereck sondern eine Lupe habe, möchte ich, dass der gewählte Bereich genau unter der Lupe gezoomt wird. Bis hierher bin ich schon gekommen. Wenn ich nun ein Stück weit in die Karte zoome und dann an anderer Position weiterzoomen möchte, kommt es zu unschönen Verschiebungen.
__________________
Remo

****************
strengen denkt an!
****************
Remo ist offline   Mit Zitat antworten
Alt 14-09-2006, 15:42   #9 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
*
Angehängte Dateien
Dateityp: zip lupe.zip (10,7 KB, 108x aufgerufen)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 14-09-2006, 19:42   #10 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Bern, Schweiz
Beiträge: 121
Vielen herzlichen Dank. Daraus lässt sich für mich bestimmt das nötige ableiten.
...bin schon halb in den Ferien, aber damit werde ich sicher weiter kommen.

Liebe Grüsse, Remo
__________________
Remo

****************
strengen denkt an!
****************
Remo ist offline   Mit Zitat antworten
Alt 09-02-2007, 10:22   #11 (permalink)
k4 8004
 
Registriert seit: Jul 2001
Ort: zh04ch
Beiträge: 465
hallo forum, hallo hgseib
feine lupe!
ich bastel gearade daran rum um kommeinfach zu keinem schluss.

und zwar ist bei mir der knackpunkt folgender:
wie muss ich die _root angaben verändern damit die lupe auch in einem container.swf funktioniert.

sprich wenn ich die lupe.swf in einen container lade.

this _parent und garnix geht nicht. irgendwie feht es mir an vorstellungskraft um die pfade korret anzupassen. weiss mir da jemand abhilfe?

PHP-Code:
// 
// www.SeibsProgrammLaden.de
// 
zoom_speed 1.02;
zoom_min 1;
zoom_max 3;
// 
lupe.karte_move.zoom_min;
lupe.fZoom = function(zoom) {
    
with (this.karte_move) {
        
*= zoom;
        
_x = (_root.karte_org._x-_root._xmouse)*z;
        
_y = (_root.karte_org._y-_root._ymouse)*z;
        
karte_zoom._xscale karte_zoom._yscale=z*100;
    }
};
lupe.onMouseMove = function() {
    
with (this) {
        
_x _root._xmouse;
        
_y _root._ymouse;
        
fZoom(1);
    }
};
lupe.onPress = function() {
    
this.onEnterFrame = function() {
        
with (this) {
            
fZoom(zoom_speed);
            if (
karte_move.z>zoom_max) {
                
delete onEnterFrame;
            }
        }
    };
};
lupe.onRelease = function() {
    
this.onEnterFrame = function() {
        
with (this) {
            
fZoom(1/zoom_speed);
            if (
karte_move.z<zoom_min) {
                
delete onEnterFrame;
            }
        }
    };
};
lupe.onReleaseOutside lupe.onRelease


tnx
hio
__________________
aus z-city
hioglyphix ist offline   Mit Zitat antworten
Alt 09-02-2007, 12:55   #12 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
*
Angehängte Dateien
Dateityp: zip lupe.zip (14,1 KB, 57x aufgerufen)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 10-02-2007, 23:19   #13 (permalink)
k4 8004
 
Registriert seit: Jul 2001
Ort: zh04ch
Beiträge: 465
WOW! hgseib,

total abgespeckt.

wie ging denn das? das muss ich mir mal in aller ruhe zu gemüte führen

1000 dank
hio
__________________
aus z-city
hioglyphix ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 15:42 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele