AW: Karte
etwas flexibler ist man, wenn kein fester Wert für das Ziehen verwendet wird, sondern dieser Wert ausgelesen wird. Dann kann man problemlos die Karte austauschen sowie deren Größe, die Größe der Maske sowie die Position beider verändern.
Aufbau der Anwendung (960 x 620, 24 BpS):
Hauptzeitleiste Ebenen anlegen in folgender aufsteigender Reihenfolge:
map: enthält die Karte (z.B. Größe 2000 x 1505, MovieClip Instanzname "map", _x: 28, _y: 30)
hotspots: enthält die Hotspots auf der Karte, die bei RollOver Infos anzeigen sollen (MC spots mit verschiedenen Buttons bt1 bis btn entsprechend der Anzahl n; spots liegt auf der gleichen Pos wie map)
mask: naja, naheliegenderweise die Maske, maskiert die beiden vorgenannten Ebenen (_x: 28, _y: 30)
objects: enthält eine Grafik, die bei Klick dafür sorgt, dass die Karte auf die Startpos zurück kehrt
actions: Bildskript
Der Registrierungspunkt liegt bei allen MCs in der linken oberen Ecke (daher kann die Karte gegenüber der Startpos nur nach links und/oder oben bewegt werden).
Bildskript:
PHP:
//--------------------------------------- vars -------------------------------------
var nStartX:Number = map._x;
var nStartY:Number = map._y;
var nTempo:Number = 0.5;
//--------------------------------------- functions -------------------------------------
function bewegen() {
var nDistX:Number = nStartX-this._x;
var nDistY:Number = nStartY-this._y;
this._x += nDistX*nTempo;
this._y += nDistY*nTempo;
spots._x = map._x;
spots._y = map._y;
if (Math.round(nDistX) == 0 && Math.round(nDistY) == 0) {
this._x = nStartX;
this._y = nStartY;
spots._x = map._x;
spots._y = map._y;
delete this.onEnterFrame;
this.bMove = false;
delete spots.onMouseMove;
}
}
function init() {
map.bMove = false;
map.onPress = function() {
if (!map.bMove) {
this.startDrag(false,nStartX,nStartY,-(map._width-maske._width-nStartX),-(map._height-maske._height-nStartY));
spots.onMouseMove = function() {
this._x = map._x;
this._y = map._y;
};
}
};
map.onRelease = map.onReleaseOutside=function () {
this.stopDrag();
delete spots.onMouseMove;
};
map.useHandCursor = false;
kompass.onPress = function() {
map.bMove = true;
map.onEnterFrame = bewegen;
};
}
//--------------------------------------- start -------------------------------------
init();
Viel Spass