Comunidad de diseño web y desarrollo en internet online

Centar MovieClip en un contenedor con AS3

Citar            
MensajeEscrito el 01 Dic 2008 06:05 pm
Este es un código que había utilizado anteriormente para centrar imágenes dentro de un contenedor (sprite o movieclip) y me ha funcionado:

Código :

      // Al iniciar la carga de la imagen (también lo intenté en el evento COMPLETE)
      private function onInitContentLoaderInfo(e:Event):void {
                        //imágen al 0% del alpha 
         _loader.alpha = 0 ;
                       // agrego la imagen al contenedor (fotoSprite)
         _fotoContenedor.addChild(_loader );
         
            // tomo las dimensiones originales de la imágen   
            var W = _loader.contentLoaderInfo.width;
            var H = _loader.contentLoaderInfo.height;

                     // Proporción entre alto y ancho de la imágen 
            var proporcion:Number;
         
         // En caso de que sea más ancha que alta la foto
         if (W >= H) {
            proporcion = H / W;
            _loader.width = _maxW;
            _loader.height = _loader.width * proporcion;
            
                                // Si aún así rebasa en altura al contenedor entonces redimensiona de nuevo la imágen
            if (_loader.height > _maxH) {
               proporcion = _maxH / _loader.height;
               _loader.height = _maxH;
               _loader.width =_maxH * proporcion;
            }
            
                        //En caso de que sea más alta que ancha la foto
         } else if (H > W) {
            proporcion = W / H;
            _loader.height = _maxH;
            _loader.width = _loader.height * proporcion;
            
            if (_loader.width > _maxW) {
               proporcion = _maxW / _loader.width;
               _loader.width = _maxW;
               _loader.height = _maxW * proporcion;
            } 
            
         }
         
         // centrado
         _loader.y = (_fotoContenedor.width  - _loader.height) / 2;
              _loader.x = (_fotoContenedor.width- _loader.width) / 2;         
         
         trace("_fotoContenedor.width  = " + _fotoContenedor.width );
         trace("_fotoContenedor.height  = " + _fotoContenedor.height );
         trace("_maxW = " + _maxW);
         trace("_maxH = " + _maxH);
         
                        _gTween.setProperties( { alpha:1 } );
         _gTween.beginning();
         _gTween.play();
      }


Como lo tengo organizado en MovieClips es :
perfil->fotoSeleccionada->fotoContenedor .

Los puntos de registro están en las coordenadas (0,0) cada uno pero de todas formas la imagen aparece descuadrada y rebazando un poco el tamaño de los límites del contenedor.
Se que es algo sencillo que se está escondiendo por ahí y no lo puedo ver :oops: .
¡Help please! Gracias.;).

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Dic 2008 07:19 pm
Jajaja, perjuraba que las coordenadas de los puntos de registro estaban en (0,0) ouh! (unos decimales pasados). Y para menos pierde le cambio mejor la forma de centrar usando los límites máximos para mejor lectura y no perdernos con los movie clips contenedores.

Código :

// centrado
    _loader.y = (_maxH  - _loader.height) / 2;
    _loader.x = (_maxW- _loader.width) / 2;   

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox

 

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