Собственно сабж. Написал редактор полигона. В точках маркеры можно перетаскивать, но при перетаскивании всё пере-рисовывается как бы с притормаживанием... то ли я не так написал, то ли сам проект мой тормозит... посоветуйте как сделать чтоб быстро пере-рисовывалось
Код AS3:
private var testPoint:Marker;
private var polyLatLngs:Array = new Array();
private var polygonMode:Boolean;
public var polyShape:Polygon = null;
public var mar_id:Number = 0;
public var polmarkers:Array = new Array();
public function drawCoordinates():void {
if (polyShape) {map.removeOverlay(polyShape);}
polyShape = new Polygon(polyLatLngs);
map.addOverlay(polyShape)
}
public function mapClick(e:MapMouseEvent):void {
var latlngClicked:LatLng = e.latLng;
polyLatLngs.push(latlngClicked);
placemark(polyLatLngs.length, latlngClicked);
drawCoordinates();
}
public function placemark (i:Number, cc:LatLng):void {
polmarkers[i] = new Marker(cc, new MarkerOptions({
icon: new customIcons["cross"],
draggable: true,
hasShadow: false,
iconOffset: new Point(-8, -8)
}));
polmarkers[i].addEventListener(MapMouseEvent.DRAG_START, Drag(i))
polmarkers[i].removeEventListener(MapMouseEvent.DRAG_END, Drag(i))
function Drag (i:Number) {
return function(event: MapMouseEvent) {
polmarkers[i].addEventListener(MapMouseEvent.MOUSE_MOVE, Move)
polmarkers[i].removeEventListener(MapMouseEvent.DRAG_END, Move)
function Move (event:MapMouseEvent):void {
polyLatLngs[i-1] = event.latLng
drawCoordinates()
}
}
}
map.addOverlay(polmarkers[i]);
}
public function deleteLastLatLng(e:Event):void {
if (polyLatLngs.length > 0) {
map.removeOverlay(polmarkers[polyLatLngs.length])
polyLatLngs.pop();
}
drawCoordinates();
log2.text = polyLatLngs.toString()
}
public function clearMap(e:Event):void {
map.clearOverlays();
polyShape = null;
polyLatLngs.length = 0;
}
public function toggleDrawMode(e:Event):void {
map.clearOverlays();
polyShape = null;
drawCoordinates();
}