aun estoy trabajando en una función para escalar,
esta vez la duda que tengo es la siguiente:
al clicar un clip aparecen unos nodos con los cual puedo modificar
la escala del clip horizontal y verticalmente.
son 4 nodos situados uno en cada vértice del clip llamados "nodo0_mc"... "nodo4_mc".
para modificar la escala del clip lo que hace cada nodo es lo siguiente :
Código :
nodo0_mc.onPress = function() {
this.startDrag();
this.onEnterFrame = function() {
nodo3_mc._x = nodo0_mc._x;
nodo1_mc._y = nodo0_mc._y;
//"destino_escala" ES EL CLIP QUE SE ESTA ESCALANDO
destino_escala._x = nodo0_mc._x;
destino_escala._y = nodo0_mc._y;
destino_escala._width = nodo1_mc._x-nodo0_mc._x;
destino_escala._height = nodo2_mc._y-nodo0_mc._y;
};
};
el problema es que la escala no es proporcional y yo necesito que al escalar el clip
este lo haga de manera proporcional para que no se deforme ya que dentro de los
clips cargare una foto.
como podría hacerlo ???
aqui pueden ver un ejemplo de lo que he hecho:
[url]
http://www.trigo.cl/escala/escalar-simple.html
[/url]
aqui coloco todo el codigo por si les sirve, gracias y ojalá puedan ayudarme:
Código :
//COLOCA LO NODOS EN SUS POSICIONES CORRESPONDIENTES
ordena_nodo = function (destino_escala2) {
nodo0_mc._x = destino_escala2._x;
nodo0_mc._y = destino_escala2._y;
nodo1_mc._x = destino_escala2._x;
nodo1_mc._y = destino_escala2._y;
nodo1_mc._x = destino_escala2._width+nodo0_mc._x;
nodo2_mc._y = destino_escala2._height+nodo0_mc._y;
nodo2_mc._x = destino_escala2._width+nodo0_mc._x;
nodo3_mc._y = destino_escala2._height+nodo0_mc._y;
nodo3_mc._x = destino_escala2._x;
};
//CREA LOS NODOS
crea_nodos = function (destino_escala) {
for (nodos=0; nodos<4; nodos++) {
//this.createEmptyMovieClip("square_mc"+i, this.getNextHighestDepth());
this.createEmptyMovieClip("nodo"+nodos+"_mc", nodos);
eval("nodo"+nodos+"_mc").beginFill(0xFF0000);
eval("nodo"+nodos+"_mc").moveTo(-11.5, 11.5);
eval("nodo"+nodos+"_mc").lineTo(11.5, 11.5);
eval("nodo"+nodos+"_mc").lineTo(11.5, -11.5);
eval("nodo"+nodos+"_mc").lineTo(-11.5, -11.5);
eval("nodo"+nodos+"_mc").lineTo(-11.5, 11.5);
eval("nodo"+nodos+"_mc").endFill();
////
}
//INVOCO "ordena_nodo" para posicionar los nodos
ordena_nodo(destino_escala);
//CUANDO SUELTO LO NODOS DEJAN DE ARRASTRARSE Y DE ESCALAR EL CLIP
nodo0_mc.onRelease = nodo1_mc.onRelease=nodo2_mc.onRelease=nodo3_mc.onRelease=function () {
this.stopDrag();
this.onEnterFrame = null;
};
nodo0_mc.onReleaseOutside = nodo1_mc.onReleaseOutside=nodo2_mc.onReleaseOutside=nodo3_mc.onReleaseOutside=function () {
this.onRelease();
};
//ACCIONES PARA A
//AL ARRASTRAR "nodo0_mc" se modifica la escala del clip
nodo0_mc.onPress = function() {
this.startDrag();
this.onEnterFrame = function() {
nodo3_mc._x = nodo0_mc._x;
nodo1_mc._y = nodo0_mc._y;
//"destino_escala" ES EL CLIP QUE SE ESTA ECALANDO
destino_escala._x = nodo0_mc._x;
destino_escala._y = nodo0_mc._y;
destino_escala._width = nodo1_mc._x-nodo0_mc._x;
destino_escala._height = nodo2_mc._y-nodo0_mc._y;
};
};
//ACCIONES PARA B
//AL ARRASTRAR "nodo1_mc" se modifica la escala del clip
nodo1_mc.onPress = function() {
this.startDrag();
this.onEnterFrame = function() {
nodo0_mc._y = nodo1_mc._y;
nodo2_mc._x = nodo1_mc._x;
//"destino_escala" ES EL CLIP QUE SE ESTA ECALANDO
destino_escala._y = nodo0_mc._y;
destino_escala._width = nodo1_mc._x-nodo0_mc._x;
destino_escala._height = nodo2_mc._y-nodo0_mc._y;
};
};
//ACCIONES PARA C
//AL ARRASTRAR "nodo2_mc" se modifica la escala del clip
nodo2_mc.onPress = function() {
this.startDrag();
this.onEnterFrame = function() {
nodo1_mc._x = nodo2_mc._x;
nodo3_mc._y = nodo2_mc._y;
//"destino_escala" ES EL CLIP QUE SE ESTA ECALANDO
destino_escala._x = nodo0_mc._x;
destino_escala._y = nodo0_mc._y;
destino_escala._width = nodo1_mc._x-nodo0_mc._x;
destino_escala._height = nodo2_mc._y-nodo0_mc._y;
};
};
//ACCIONES PARA D
//AL ARRASTRAR "nodo3_mc" se modifica la escala del clip
nodo3_mc.onPress = function() {
this.startDrag();
this.onEnterFrame = function() {
nodo0_mc._x = nodo3_mc._x;
nodo2_mc._y = nodo3_mc._y;
//"destino_escala" ES EL CLIP QUE SE ESTA ECALANDO
destino_escala._x = nodo0_mc._x;
destino_escala._y = nodo0_mc._y;
destino_escala._width = nodo1_mc._x-nodo0_mc._x;
destino_escala._height = nodo2_mc._y-nodo0_mc._y;
};
};
//
};
//AL CLICAR SOBRE EL CLIP SE INVOCA A LA FUNCION "CREA_NODOS" PARA
//COMENZAR A ESCALAR
cuadrado_0.onPress = function() {
yo = this._name;
//destino_escala = this._name
crea_nodos(eval(yo));
};
//
cuadrado_1.onPress = function() {
yo = this._name;
//destino_escala = this._name
crea_nodos(eval(yo));
};
