Comunidad de diseño web y desarrollo en internet online

problema con Diagramacion Liquida

Citar            
MensajeEscrito el 03 Nov 2010 09:48 pm
Hola!!

este es mi code para Diagramacion Liquida

Código ActionScript :

package clases{
   
   import flash.display.Stage; 
    import flash.display.MovieClip; 
    import flash.display.Sprite; 
    import flash.display.StageAlign; 
    import flash.display.StageScaleMode; 
    import flash.events.Event; 
    
   
   public class Main extends MovieClip{
      public function Main(){
         stage.addEventListener(Event.RESIZE, stageResizeHandler);
         stageResizeHandler();
      }
      
      private function stageResizeHandler(evt:Event = null):void {
         stage.align = StageAlign.TOP_LEFT;
          stage.scaleMode = StageScaleMode.NO_SCALE;
         var ANCHO:Number = stage.stageWidth;
          var ALTO:Number = stage.stageHeight;
         footer_mc.x=(ANCHO - footer_mc.width) / 2;
         footer_mc.y= ALTO - footer_mc.height;
         footer_mc.width=ANCHO;
         youtube_mc.x=(ANCHO - youtube_mc.width)-5; 
         youtube_mc.y=(ALTO - youtube_mc.height)-3; 
      }
   }
}


el problema es que quiero que footer_mc redimensione su ancho al ancho del stage, lo hago asi pero solo funciona al redimensionar manualmente la pelicula, es decir no lo aplica apenas compilo:

Código ActionScript :

footer_mc.width=ANCHO;


Gracias por su ayuda!!! ^^

Por dianita666

Claber

185 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Nov 2010 09:57 pm
Pues deberías tener una escucha hacia:

Código ActionScript :

addEventListener(Event.ADDED_TO_STAGE, stageResizeHandler);


Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 03 Nov 2010 10:03 pm
Gracias Hernan!!!!!

quedo asi y funciona!!!

pero tengo una duda: Porque deben haber dos addEventListener llamando la misma funcion?

Gracias

Código ActionScript :

package clases{
   
   import flash.display.Stage; 
    import flash.display.MovieClip; 
    import flash.display.Sprite; 
    import flash.display.StageAlign; 
    import flash.display.StageScaleMode; 
    import flash.events.Event; 
    
   
   public class Main extends MovieClip{
      public function Main(){
         stage.addEventListener(Event.RESIZE, stageResizeHandler);
         addEventListener(Event.ADDED_TO_STAGE, stageResizeHandler);
         stageResizeHandler();
      }
      
      private function stageResizeHandler(evt:Event = null):void {
         stage.align = StageAlign.TOP_LEFT;
          stage.scaleMode = StageScaleMode.NO_SCALE;
         var ANCHO:Number = stage.stageWidth;
          var ALTO:Number = stage.stageHeight;
         footer_mc.x=(ANCHO - footer_mc.width) / 2;
         footer_mc.y= ALTO - footer_mc.height;
         footer_mc.width=ANCHO;
         youtube_mc.x=(ANCHO - youtube_mc.width)-5; 
         youtube_mc.y=(ALTO - youtube_mc.height)-3; 
      }
   }
}

Por dianita666

Claber

185 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Nov 2010 02:36 am
Para empezar, el código correcto es:

Código ActionScript :

public function Main(){ 
         stage.addEventListener(Event.RESIZE, stageResizeHandler); 
         addEventListener(Event.ADDED_TO_STAGE, stageResizeHandler); 
} 


Te cuento, la llamada directamente a stageResizeHandler es nula, dado que se ejecuta antes que el Stage sea dibujado, ergo, decir stage.stageWidth es totalmente inutil.

La llamada ADDED_TO_STAGE, permite determinar cuando un objeto es agregado al DisplayObject, en este caso, el promerio Stage. El listener RESIZE, se ejecuta cuando alguien edita el tamaño.

Por eso usas las dos llamadas.

Y para ser correcto, deberías usar REMOVED_FROM_STAGE para quitar el listener.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 04 Nov 2010 01:11 pm
Hola Hernan!!

Cuando lo hago asi, tengo el mismo problma del principio:

Código ActionScript :

public function Main(){  
         stage.addEventListener(Event.RESIZE, stageResizeHandler);  
         addEventListener(Event.ADDED_TO_STAGE, stageResizeHandler);  
} 


Solo funciona al agregarle:

stageResizeHandler();

O tendre otra cosa mal?

Gracias Hernan ^^ ^^

Por dianita666

Claber

185 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Nov 2010 04:10 pm
:shock:

Por dianita666

Claber

185 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Nov 2010 09:07 pm
Hola!!!!

Les cuento que monte el swf en su respectivo html y al abrirlo funciona bien, problema es cuando redimensiono la ventana del navegador: el swf enloquece, se pierde la diagramacion liquida

Este es el main de mi swf:

Código ActionScript :

package clases{
   
   import flash.display.Stage; 
    import flash.display.MovieClip; 
    import flash.display.Sprite; 
    import flash.display.StageAlign; 
    import flash.display.StageScaleMode; 
    import flash.events.Event;
 
   
   public class Main extends MovieClip{

      public function Main(){
         stage.addEventListener(Event.RESIZE, stageResizeHandler);
         addEventListener(Event.ADDED_TO_STAGE, stageResizeHandler);
         stageResizeHandler();
         
      }
      
      private function stageResizeHandler(evt:Event = null):void {
         stage.align = StageAlign.TOP_LEFT;
          stage.scaleMode = StageScaleMode.NO_SCALE;
         var ANCHO:Number = stage.stageWidth;
          var ALTO:Number = stage.stageHeight;
         footer_mc.x=(ANCHO - footer_mc.width) / 2;
         footer_mc.y= ALTO - footer_mc.height;
         footer_mc.width=ANCHO;
         links_mc.x=(ANCHO - links_mc.width)-5; 
         links_mc.y=(ALTO - links_mc.height)-3;
         mp3player_mc.x= 5; 
         mp3player_mc.y= (ALTO - mp3player_mc.height)-6;
      }
   }
}


y esto lo puse en mi html para que la diagramacion liquida funcione:

Código :

<script type="text/javascript" src="js/swfobject.js"></script>


<script type="text/javascript">
swfobject.embedSWF("home.swf", "main", "100%", "100%", "10.0.0");
</script>

<style type="text/css">
html, body {
    height: 100%;
     margin: 0;
}

</style>



Les agradezco la ayuda que puedan ofrecerme para solucionar este inconveniente

Gracias!!!!
^^ :love:

Por dianita666

Claber

185 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Nov 2010 06:56 pm
Viendo en detalle lo unico que falla es esto:

Código ActionScript :

footer_mc.width=ANCHO;


Tambien probe esto, con identicos resultados:

Código ActionScript :

footer_mc.xScale=ANCHO;


Sugerencias?
Gracias

Por dianita666

Claber

185 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Nov 2010 02:02 am
¿Que te tira el trace de ANCHO?

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 11 Nov 2010 07:30 pm
Los valores del ancho del stage a medida que lo redimensiono
^^

Por dianita666

Claber

185 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Nov 2010 10:01 pm
Prueba haciendo un trace que diga:

Código ActionScript :

trace(footer_mc.width+" VS "+ANCHO);


Ponlo debajo de footer_mc.width = ANCHO;

Fijate que info devuelve.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 11 Nov 2010 10:05 pm
Hola Hernan!!!!!

Ya lo solucione!!!!

El problema era que estaba asignandole el ancho dntro de la funcion resize


Gracias !!!

Por dianita666

Claber

185 de clabLevel



 

firefox

 

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