Comunidad de diseño web y desarrollo en internet online

Controlar StageScaleMode de un SWF cargado.

Citar            
MensajeEscrito el 16 Ene 2011 04:05 pm
Hola.

Estoy intentando manipular el escalado de un swf que cargo dentro de mi película principal. Este SWF "padre" usa la propiedad StageScaleMode.NO_SCALE ya que quiero ser yo quien controle el posicionamiento de los elementos.

El problema es que cuando cargo el swf externo, éste me aparece como si estuviera re escalado, de tal forma que lo que antes de veía a su tamaño "normal" ahora aparece mucho más pequeño. Esto es lo que hago en la funcion oComplete del Loader:

Código ActionScript :


private function onComplete(e:Event):void 
{
   swfLoader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, onLoadingError);
   swfLoader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress);
   swfLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onComplete);

               
   theSwf = e.currentTarget.content as DisplayObjectContainer;
   addChild(theSwf);
   theSwf.width = swfLoader.contentLoaderInfo.width;
   theSwf.height = swfLoader.contentLoaderInfo.height;


}


He probado a manipular el escalado del swf que cargo pero no obtengo lo que quiero, ya que al parecer, cuando lo hago, mi película principal cambia su StageScaleMode.NO_SCALE, por el que haya "puesto" en mi SWF cargado.

Sabéis a que puede ser debido?

Hay alguna manera de mantener las proporciones de mi asset dentro de una película "seteada" a NO_SCALE en su stage?

Gracias de antemano.

Salutens!

Por teskostudio

34 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Ene 2011 02:04 pm
La idea del NO_SCALE es escalar todo a mano, por eso me sorprende que se cambie cuando reescalas lo que cargas, a menos que específicamente lo que cargas esté tratando de cambiar el ScaleMode. Lo cargado hereda el escalado del contenedor, quizás estes escalando el padre adonde agregas el swf

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Ene 2011 10:36 am
Hola.

Gracias por la respuesta. Al final averigüé el qué.

Tienes razón. Creo que el problema vino derivado de querer manipular el stage del SWF cargado desde él mismo. Bueno, en realidad lo que hacía era "supuestamente" tomar las medidas de stage desde el hijo para dibujar un sprite que cubriese todo el fondo del SWF externo.

Por lo que pude ver, eso interfería con la referencia al stage que hago desde el "padre" de él mismo, lo que hacía que a la hora de dibujarse dicho sprite en el hijo, se tomaran las medidas del stage del padre y por algún motivo que aún no entiendo, se escalase todo el SWF cargado.

Probé con this.stage dentro del SWF externo e incluso asignando nombres distintos a las variables a las cuales pasaba las distintas referencias del stage, tanto desde el padre como desde el hijo, pero no conseguí lo que quería hasta que eliminé referencia alguna al stage desde el SWF externo para dibujar el sprite y "seteé" el tamaño de dicho sprite a una medida en píxeles. Todo Ok.

De todas formas gracias :)

Salutens!

Por teskostudio

34 de clabLevel



 

firefox

 

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