electroduendes.com

bitácora de un desarrollador interactivo

electroduendes.com header image 2

Cuerda elástica

November 1st, 2005 · 3 Comments

Estoy jugando con algunos experimentos de la api de dibujo. En el experimento que trataba de hacer, las curvas cambiaban en función de la velocidad del viento. Me he acordado del experimento de Marcos que ví un día en los .fla de subflash y que me gustó bastante. Como tenía algo de código parecido, lo he reproducido. La verdad, es que resulta más fácil de lo que parece.
Cuando tenga un rato, lo comento y lo publico.

su código fuente:

import flash.geom.Point;
import mx.transitions.*;
import mx.transitions.easing.*;
// puntos de la goma
var pinit:Point = new Point(50, 100);
var pfin:Point = new Point(150, 100);
// la goma se va a dibujar con un vertice
var pVerticeCurva:Point = null;
// dragger es  la cruz
attachMovie("beizer", "dragger", 2);
init();
// crea el clip goma e inicializa la posicion del dragger y del enterFrame
function init() {
	var goma = _root.createEmptyMovieClip("goma", 1);
	// este punto se podría introducir a mano
	pVerticeCurva = new Point(Math.abs((pinit.x-pfin.x)/2)+pinit.x, 
								Math.abs((pinit.y-pfin.y)/2)+pinit.y);
	// colocamos el dragger en el punto de la curva
	_root["dragger"]._x = pVerticeCurva.x;
	_root["dragger"]._y = pVerticeCurva.y;
	goma.onEnterFrame = redibujar;
}
// dibuja la goma con los valores calculados
function redibujar() {
	with (goma) {
		clear();
		lineStyle(2, 0xc0c0c0, 100);
		moveTo(pinit.x, pinit.y);
		curveTo(_root["dragger"]._x, _root["dragger"]._y, pfin.x, pfin.y);
	}
}
dragger.onPress = function() {
	startDrag(this);
};
// cuando soltamos el dragger, movemos el punto de la curva...
dragger.onRelease = dragger.onReleaseOutside=function () {
	stopDrag();
	new Tween(this, "_x", Elastic.easeOut, this._x, pVerticeCurva.x, 1, true);
	new Tween(this, "_y", Elastic.easeOut, this._y, pVerticeCurva.y, 1, true);
};

Tags: Actionscript 2.0 · Experimental · Flash

3 responses so far ↓

  • 1 marcos // Dec 10, 2005 at 3:21 pm

    Muy wapo, que bien saber que alguien mira los fla de subflash.. :) Queremos ver el codigo!!

  • 2 Alex // Dec 14, 2005 at 4:40 am

    dicho y hecho, maestro :D

  • 3 marcos // Dec 19, 2005 at 12:48 am

    Gracias!. Ya veo que la filosofia es la misma que emplee yo (si no recuerdo mal) pero esto mucho mejor escrito.. creo que de cuando lo hice no tenia a mano las tweens con lo que me curre el efecto de elasticidad a partir de un codigo de joan garnet… XD Tamos todos en el ajo!

Leave a Comment