Autor |
Nachricht |
ENIXone
Threadersteller
Dabei seit: 25.02.2007
Ort: Sundern
Alter: 37
Geschlecht:
|
Verfasst Do 13.11.2008 14:05
Titel [AS2] Mapping Steuerung |
|
|
Hallo Leute,
ich sitze z.Z. an nem Script das mir eine Karte anzeigt.
Meine Karte hat eine Größe von 2222 x 2096, meine Bühe hat eine Größe von 667 x 509px.
Mein Script sagt eig. nur aus, dass er entgegengesetzt der Maus die Karte verschiebt, um so die komplette Karte anzeigen lassen zu können.
Jedoch würde ich dies der mit einer kleinen Verzögerung machen. Weiß aber nicht wie. Ich habe irgendwo mal gelesen, das ich dafür die Distanz von Maus und Karte benötige. Weiß aber jetzt nicht wie ich es weiterhin in mein Script einbinden soll.
Jemand ne Ahnung????
So mein Script:
Code: |
_root.map_mc.karte_mc.onEnterFrame = function() {
//Mausposition
var xmouse = _root.map_mc._xmouse;
var ymouse = _root.map_mc._ymouse;
//Verhältnis von Karte und Anzeige
var xVer = 777/333;
var yVer = 793/254;
// Distanz
var xdist = this._x-xmouse;
var ydist = this._y-ymouse;
//Positionierung
this._x = -xmouse*xVer;
this._y = -ymouse*yVer;
};
|
|
|
|
|
|
ENIXone
Threadersteller
Dabei seit: 25.02.2007
Ort: Sundern
Alter: 37
Geschlecht:
|
Verfasst Fr 14.11.2008 10:01
Titel
|
|
|
keiner ne Idee???
|
|
|
|
|
Anzeige
|
|
|
Miracula
Dabei seit: 17.11.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Di 18.11.2008 19:46
Titel
|
|
|
Das ist das typische Mausverfolger-Problem
Du musst einfach zwei Zeilen Code verändern:
Das hier:
Code: | this._x = -xmouse*xVer;
this._y = -ymouse*yVer; |
wird zu dem hier:
Code: | this._x = -xmouse*xVer + (xdist * 0.5);
this._y = -ymouse*yVer + (ydist * 0.5); |
Die 0.5 kannst du natürlich noch anpassen, jenachdem wie lange 'nachgezogen' werden soll.
|
|
|
|
|
ENIXone
Threadersteller
Dabei seit: 25.02.2007
Ort: Sundern
Alter: 37
Geschlecht:
|
Verfasst Mi 19.11.2008 08:26
Titel
|
|
|
Guten Morgen Miracula,
ja, es war wirklich ein Problem.
Jedoch hab ich mir das ganze Wochenende den Kopf fusslig gedacht. Da mein Kunde nun auch eine "Zoom" function haben wollte.
Jetzt hatte ich das Problem das meine function beim Zoomen auch den Weißen Bereich angezeigt hat.
Konnte aber das Problem mit einer Formel gut lösen.
Die Formel rechnet den Faktor des Verhältnisses auf das minimum aus:
Falls es jemand irgendwie gebrauchen kann:
Code: |
_root.map_mc.karte_mc.onEnterFrame = function() {
//Mausposition der zentrierten Fläche
xmouse = _root.map_mc._xmouse;
ymouse = _root.map_mc._ymouse;
//Berechnung des Faktors für die maximale Verschiebung ohne weißen Rand
xFactor = ((this._width-Stage.width)/2)/(Stage.width/2);
yFactor = ((this._height-Stage.height)/2)/(Stage.height/2);
//Falls der Faktor mal unter 0 kommt, wird dieser wieder auf 0 gesetzt
if (xFactor<0) {
xFactor = xFactor-xFactor;
}
if (yFactor<0) {
yFactor = yFactor-yFactor;
}
//Distanz von Karte zu Maus im Verhältnis
xdist = this._x-(-xmouse*xFactor);
ydist = this._y-(-ymouse*yFactor);
// Positionierung der Karte entgegengesetzt der Maus.
this._x = this._x-xdist/3;
this._y = this._y-ydist/3;
}; |
Der Code hat mich das ganze Wochenende beschäftigt, falls nun jemand genau das gleiche Prob hat, oder es für etwas anderes verwenden möchte, so hatta hier die Lösung
Greez!
|
|
|
|
|
|
|
|
Ähnliche Themen |
Steuerung von externen swf und Bildgalerie
Steuerung von externem Mc aus MainMc
XML Problem - FlashMp3Player Steuerung
Slider / Bildleiste mit Steuerung
Flash: Movieclip-Steuerung
VRML und Script-Steuerung
|
|