// – prototype escalar ( // – descripción : escala un clip de pelí cula proporcionalmente // – argumentos : escala, vel // – tonilopez - After-Hours // MovieClip.prototype.escalar = function(escala, vel) { // no se ha definido escala if (escala == undefined) { return; } this.escala = escala; // si se recibe argumento vel, aplicar, si no por defecto 3 if (vel == undefined) { this.vel = 3; } else { this.vel = vel; } this.onEnterFrame = function() { // – ajuste exacto if (Math.abs(Math.round(this.escala)-Math.round(this._xscale)) == 1) { this._xscale = this._yscale=this.escala; delete this.onEnterFrame; } else { this._xscale = (this.escala+this.vel*this._xscale)/(this.vel+1); this._yscale = (this.escala+this.vel*this._yscale)/(this.vel+1); } }; };
// – uso
mc_miclip.escalar(escala,velocidad)
Enero 18th, 2004 at 8:06 pm
Hola a todos!
Antes de nada felicitaros por el blog, lo descubrí ayer y me encantó!
Estaba mirando la clase y creo que te puedes ahorrar el if (this.escala>this._xscale).
No sé como quedará el código en los comentarios, en cualquier caso lo pongo
MovieClip.prototype.escalar = function(escala) {
// no se ha definido escala
if (escala == undefined) {
return;
}
this.escala = escala;
this.onEnterFrame = function() {
// – ajuste exacto
if (Math.abs(Math.round(this.escala)-Math.round(this._xscale)) == 1) {
this._xscale = this._yscale = this.escala;
delete this.onEnterFrame;
} else {
this._xscale = (this.escala+1+3*this._xscale)/4;
this._yscale = (this.escala+1+3*this._yscale)/4;
}
};
};
Saludos!
Enero 18th, 2004 at 8:53 pm
Mu buenas. Muy chulo el proto.
Estaria bien que además pudieras parametrizar la velocidad a la que se escala.
MovieClip.prototype.escalar = function(escala,vel) {
//…
this._xscale = (this.escala+(vel*this._xscale))/(vel+1);
this._yscale = (this.escala+(vel*this._yscale))/(vel+1);
Yo suelo hacerlo asi, porque luego puedes jugar con distintas velocidades para ajustarlo al resultado que le quieras dar.
Ale, un saludo
Enero 18th, 2004 at 11:50 pm
Xavi: Hola Xavi, bienvenido!.
Sobre tu correción, muy acertada , de hecho primero lo hice como dices, pero debí a tener una buena empanada mental ya que no me chutaba, de manera que tiré por la solución bestia (mal por mi).
Dani: Pos tienes toda la razón, como siempre.
Y como de sabios es rectificar, he cambiado el proto siguiendo vuestros consejos.
Gracias!
:-)
Octubre 22nd, 2004 at 8:08 am
Muy bueno, pero falla. Al aumentar un movieclip mientras se aumenta el primero, no se por que, al menos a mi me peta. Creo que deberia tener un check de si está escalando no escale otro o algo asi.
Octubre 22nd, 2004 at 8:23 am
Hola Chumbi,a mi no me falla, te pongo un ejemplo (copy paste)y me dices que tal:
MovieClip.prototype.escalar = function(escala) {
// no se ha definido escala
if (escala == undefined) {
return;
}
this.escala = escala;
this.onEnterFrame = function() {
// – ajuste exacto
if (Math.abs(Math.round(this.escala)-Math.round(this._xscale)) == 1) {
this._xscale = this._yscale=this.escala;
delete this.onEnterFrame;
} else {
this._xscale = (this.escala+1+3*this._xscale)/4;
this._yscale = (this.escala+1+3*this._yscale)/4;
}
};
};
clip1.onRollOver=clip2.onRollOver=function(){
this.escalar(50)
}