Comunidad de diseño web y desarrollo en internet online

¿Cómo cargar un SWF externo limitando las dimensiones?

Citar            
MensajeEscrito el 09 May 2008 02:01 pm
Seguramente ya se habló de esto, pero no encuentro la respuesta.
Lo que quiero hacer es cargar un SWF externo en un contenedor y establecer las medidas para limitar la parte visible, porque si no se ven partes de la animación que están en realidad fuera del escenario.

Lo que tengo es este código, basado en lo que encontré:

Código :

function onLoadInit(mc:MovieClip) {
   mc._width = 500;
   mc._height = 100;
}

var container:MovieClip = _root.createEmptyMovieClip("container", _root.getNextHighestDepth());
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);
mcLoader.loadClip("banner.swf", container);


Lo que veo es que sirve para definir las medidas del SWF, pero no evita que se muestre lo que está fuera de escena.

Gracias desde ya.

Por cjm

1 de clabLevel



Genero:Masculino  

Misiones, Argentina

msie7
Citar            
MensajeEscrito el 09 May 2008 04:18 pm
Tienes que crearle una máscara runtime, aquí un ejemplo que justo estoy haciendo esto para la enésima galería de fotos (tengo que ocultar la tira) Lo hago desde dentro del onEnterFrame del contenedor, this.last._width es un puntero a la última foto cargada, en tu caso lo haces directamente en el onLoadInit

Código :

holder.onEnterFrame = function() {
   if (this.last._width > 0) {
            var mask:MovieClip = this._parent.getHolder()
      mask._x = this._x
      mask._y = this._y
      this._parent.drawSquare(mask, 0, 0, this._parent.listW, this._parent.listH-2, 0xFFFFFF)
      this.setMask(mask)
      delete this.onEnterFrame
   }
}
   private function drawSquare(holder:MovieClip, initX:Number, initY:Number, w:Number, h:Number, fill:Number) {
      holder.moveTo(initX, initY)
      holder.beginFill(fill, 100)      
      holder.lineTo(w, initY)
      holder.lineTo(w, h)
      holder.lineTo(initX, h)
      holder.lineTo(initX, initY)
      holder.endFill()
   }


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 May 2008 01:47 pm
Gracias por responder, pero no entiendo bien cómo aplicar el código y no me funciona (soy bastante nuevo en flash). ¿Me podrías explicar un poco más qué tengo que hacer en mi caso?

Por cjm

1 de clabLevel



Genero:Masculino  

Misiones, Argentina

msie7
Citar            
MensajeEscrito el 12 May 2008 05:33 pm

Código :

function onLoadInit(mc:MovieClip) {
     var mask:MovieClip = _root.createEmptyMovieClip("mask", _root.getNextHighestDepth());
      mask._x = _root.container._x
      mask._y = root.container._y
      _root.drawSquare(mask, 0, 0, 500, 100, 0xFFFFFF)
      _root.container.setMask(mask)
}


La función drawSquare ya la tienes, aunque si no estás trabajando dentro de una clase, quítale el private

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 May 2008 06:23 pm
Ahora sí, esta excelente. Muchísimas gracias!!

Por cjm

1 de clabLevel



Genero:Masculino  

Misiones, Argentina

msie7

 

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