Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/12/2012, 15:44
juliancho1989
 
Fecha de Ingreso: octubre-2010
Ubicación: Bucaramanga
Mensajes: 7
Antigüedad: 14 años, 2 meses
Puntos: 0
Pregunta Agrupar elementos con Libreria Raphael, HTML 5 y SVG

He esta intentando agrupar elementos con la librería Raphael, mi codigo es el siguiente:

Código:
<!doctype html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>Movable and Re-sizable Raphael JS Shape</title>
</head>
 
<body>
 
	<div id="paper"></div>
 
	<script src="jquery.min.js"></script>
	<script src="raphael-min.js"></script>
 
	<script>
   
	(function() {
 
		var dragStart = function() {
 
			// Save some starting values
			this.ox = this.attr('x');
			this.oy = this.attr('y');
			this.ow = this.attr('width');
			this.oh = this.attr('height');
			
			this.dragging = true;
		};
 
 
		var dragMove = function(dx, dy) {
 
			// Inspect cursor to determine which resize/move process to use
			
			
			
			switch (this.attr('cursor')) {
 
				case 'nw-resize' :
					this.attr({
						x: this.ox + dx, 
						y: this.oy + dy, 
						width: this.ow - dx, 
						height: this.oh - dy
					});
					break;
 
				case 'ne-resize' :
					this.attr({ 
						y: this.oy + dy , 
						width: this.ow + dx, 
						height: this.oh - dy
					});
					break;
 
				case 'se-resize' :
					this.attr({
						width: this.ow + dx, 
						height: this.oh + dy
					});
					break;
 
				case 'sw-resize' :
					this.attr({ 
						x: this.ox + dx, 
						width: this.ow - dx, 
						height: this.oh + dy
					});
					break;
 
				default :
					this.attr({
						x: this.ox + dx, 
						y: this.oy + dy
					});
					break;
 
			}
		};
 
		var dragEnd = function() {
		var box = this.getBBox();
		var ref = contenedor.getBBox();
		
			
			
			
			if  (box.x > ref.x && box.y > ref.y && box.x2 < ref.x2 && box.y2 < ref.y2)
			{
			
				alert("Está adentro");
				sector.push(this,contenedor);
							
			} 
			this.dragging = false;
		};
 
		var changeCursor = function(e, mouseX, mouseY) {
 
			// Don't change cursor during a drag operation
			if (this.dragging === true) {
				return;
			}
 
			// X,Y Coordinates relative to shape's orgin
			var relativeX = mouseX - $('#paper').offset().left - this.attr('x');
			var relativeY = mouseY - $('#paper').offset().top - this.attr('y');
 
			var shapeWidth = this.attr('width');
			var shapeHeight = this.attr('height');
 
			var resizeBorder = 10;
 
			// Change cursor
			if (relativeX < resizeBorder && relativeY < resizeBorder) { 
				this.attr('cursor', 'nw-resize');
			} else if (relativeX > shapeWidth-resizeBorder && relativeY < resizeBorder) { 
				this.attr('cursor', 'ne-resize');
			} else if (relativeX > shapeWidth-resizeBorder && relativeY > shapeHeight-resizeBorder) { 
				this.attr('cursor', 'se-resize');
			} else if (relativeX < resizeBorder && relativeY > shapeHeight-resizeBorder) { 
				this.attr('cursor', 'sw-resize');
			} else { 
				this.attr('cursor', 'move');
			}
		};
   
   
   
		// Create drawing area
		var paper = Raphael("paper", 800, 800);
 
 		var sector = paper.set();
		var contenedor = paper.rect(60,60,100,80).attr({fill:"#759dcd", stroke:'#3b5068', 'stroke-width':8}).mousemove(changeCursor).drag(dragMove, dragStart, dragEnd);
		var element = paper.rect(40,40,100,80).attr({fill:"#759dcd", stroke:'#3b5068', 'stroke-width':3}).mousemove(changeCursor).drag(dragMove, dragStart, dragEnd);


		
		
   
	})();
 
	</script>  
 
</body>
</html>
El problema es que no he podido hacer que se agrupen, es decir el método push no me funciona.

Saludos