Comunidad de diseño web y desarrollo en internet online

Mantener el tamaño de un MC al redimensionar la película SWF

Citar            
MensajeEscrito el 28 Nov 2005 08:23 pm
¿Se pueden mantener MClips invariables en X e Y, aunque la película SWF que los contiene se reproduzca con alto y ancho variables? (por ejemplo, cuando su tamaño viene indicado en HTML en porcentajes, en lugar de en píxels).

Resumiendo: Aunque estiremos la película al doble de su tamaño original, el MovieClip elegido permanece en su tamaño original.

¿Es posible hacerlo? ¿Alguien podría ayudarme?

Por louganis

22 de clabLevel



Genero:Masculino  

Islas Canarias

opera
Citar            
MensajeEscrito el 28 Nov 2005 08:42 pm
Usa estas lineas al inicio del primer frame:

Código :

Stage.showMenu = false;
Stage.scaleMode = "noScale";

Por MorphX

SWAT Team

982 de clabLevel

3 tutoriales

  SWAT

La Telaraña Digital

firefox
Citar            
MensajeEscrito el 29 Nov 2005 12:49 am
Gracias, MorphX, pero lo que consigo con las líneas es que TODA la película se mantenga al 100% de su tamaño original. Lo que busco es poder ampliar la película al 200% de su tamaño original, pero manteniendo los MCs que yo quiera en su tamaño original. Busco el código aplicable a los MC para que no incrementen sus dimensiones, aunque la película sí lo haga.

Por louganis

22 de clabLevel



Genero:Masculino  

Islas Canarias

firefox
Citar            
MensajeEscrito el 29 Nov 2005 12:52 am
es el mismo louganis, solo que no lo apliques al primer frame de tu clip principal, sino al del movieclip que no quieres que se redimensione.

saludos...

Por MorphX

SWAT Team

982 de clabLevel

3 tutoriales

  SWAT

La Telaraña Digital

firefox
Citar            
MensajeEscrito el 29 Nov 2005 12:56 am
pero si lo pongo en el primer fotograma de mi MC, cuando la película carga el MC, toda ella se vuelve al tamaño 100%. Yo quiero que mi fondo se expanda, pero los movieclips que hay encima no lo hagan.

Saludos

Por louganis

22 de clabLevel



Genero:Masculino  

Islas Canarias

firefox
Citar            
MensajeEscrito el 29 Nov 2005 01:10 am
MorphX,
también he probado a poner al principio de mi película:

_root.miClip1.scaleMode = "noScale";
_root.miClip2.scaleMode = "noScale";

pero a ninguno de los clips les afecta y se amplían igual que toda la película.

¿Tendrías un ejemplo de MCs que no se redimensionen?

Por louganis

22 de clabLevel



Genero:Masculino  

Islas Canarias

firefox
Citar            
MensajeEscrito el 29 Nov 2005 01:39 am
Puedes hacer que al variar la escala del mc principal los mc q no quieres cambiar varien su escala de forma inversamente proporcional:

Código :

// Suponiendo que en un principio todos estan a 100
mcQueNoVaria._xscale = 100 / mcPrincipal._xscale;
mcQueNoVaria._yscale = 100 / mcPrincipal._yscale;


Así contrarrestas el efecto del cambio de tamaño.

PD: No se si funcionará pero queda elegante, verdad? :P

Por Gengis

27 de clabLevel



 

Córdoba(España)

firefox
Citar            
MensajeEscrito el 29 Nov 2005 02:22 am
Gracias, Gengis.
Lo he probado, poniendo en el primer fotograma de la película principal esto:

_root.miClip1._xscale = 100 / _root._xscale;
_root.miClip1._yscale = 100 / _root._yscale;
_root.miClip2._xscale = 100 / _root._xscale;
_root.miClip2._yscale = 100 / _root._yscale;

... pero no funciona.

Por louganis

22 de clabLevel



Genero:Masculino  

Islas Canarias

opera
Citar            
MensajeEscrito el 29 Nov 2005 02:26 am
Pero, Gengis:
Seguramente tu elegante solución va en la dirección correcta, porque en teoría lée la escala en que se representa la película y la aplica a los MCs de forma inversa. Es probable que bien escrita funcione perfectamente.
El que falla soy yo y mi corto conocimiento de ActionScript.

Por louganis

22 de clabLevel



Genero:Masculino  

Islas Canarias

opera
Citar            
MensajeEscrito el 29 Nov 2005 12:23 pm
Bueno, acabo de darme cuenta de que me equivoque al escribirlo, hay que poner 10000 en lugar de 100, este código lo he probado y me funciona:

Código :

_root.onResize = function() {
   this._xscale *= ( Stage.width / this._width );
   this._yscale *= ( Stage.height / this._height );
   
   this.mc._xscale = 10000 / this._xscale;
   this.mc._yscale = 10000 / this._yscale;
}

Stage.scaleMode = "noScale";
Stage.addListener( _root );


Lo que queremos es que al aplicar la escala del mc contenedor se contrarreste con la del mc contenido, por tanto:
( this.mc._xscale / 100 ) * ( this._xscale / 100 ) = 1
de donde obtenemos:
this.mc._xscale = 100 * 100 * this._xscale
Ocurre igual para _yscale.

Y no te desanimes, que nadie nace sabiendo :wink:

8) Saludos!!!

Por Gengis

27 de clabLevel



 

Córdoba(España)

firefox
Citar            
MensajeEscrito el 29 Nov 2005 01:13 pm
Gengis:
Muchísimas gracias por el código. A mí también me ha funcionado a la perfección. Y gracias también por la explicación. El razonamiento es muy simple y elegante (lo malo es cuando no sabes trasladarlo a ActionScript).

Por louganis

22 de clabLevel



Genero:Masculino  

Islas Canarias

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.