Comunidad de diseño web y desarrollo en internet online

Clase para usar cualquier imagen de fondo en ActionScript 3

Esta clase la tenía escrita para usar una imagen tipo mosaico (tile) en mi biblioteca y fijarla como fondo, similar a lo que se puede hacer con background:url() en CSS. Así esta clase pegará la imagen vinculada y la usará como fondo cuando el stage la requiera.

Su uso es muy sencillo, ya que sólo debes identificar una imagen con el nombre de clase Pattern como se muestra en la siguiente imagen.


Bitmap Properties


Esta es la clase:

Código :

package
{
import flash.display.*;
import flash.events.*;
import flash.display.Sprite;
import flash.geom.Matrix;
//
dynamic public class AddPattern extends MovieClip
{
private var maxWidth:Number;
private var maxHeight:Number;
private var Bitmap:BitmapData;
private var RadialGradient:Sprite;
private var BackGround:Sprite;
//
public function AddPattern() : void
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
Bitmap = new Pattern(0, 0);
//
BackGround = new Sprite();
addChild(BackGround);
//
RadialGradient = new Sprite();
RadialGradient.graphics.beginGradientFill(GradientType.RADIAL,[0x000000,0x000000],[0,.5],[0,255],new Matrix().createGradientBox(stage.stageWidth,stage.stageHeight,0,0,0));
RadialGradient.graphics.drawRect(0,0,stage.stageWidth,stage.stageHeight);
addChild(RadialGradient);
//
maxWidth = stage.stageWidth - 1;
maxHeight = stage.stageHeight - 1;
//
stage.addEventListener(Event.RESIZE, fillStage);
stage.addEventListener(Event.ADDED, fillStage);
}
//
public function fillStage(event:Event) : void
{
if (stage != null)
{
if((stage.stageWidth > maxWidth) || (stage.stageHeight > maxHeight))
{
with (BackGround)
{
graphics.beginBitmapFill(Bitmap, null, true, true);
//
if(stage.stageWidth > maxWidth){maxWidth = stage.stageWidth;}
if(stage.stageHeight > maxHeight){maxHeight = stage.stageHeight;}
//
graphics.drawRect(0, 0, maxWidth, maxHeight);
graphics.endFill();
}
}
updateRadialFilter();
}
}
//
public function updateRadialFilter() : void
{
RadialGradient.width = stage.stageWidth;
RadialGradient.height = stage.stageHeight;
}
}
}


Y aquí hay un ejemplo de su uso, que como verás también es sensible a un cambio de tamaño en la ventana del navegador expandiéndose y manteniéndose a pantalla completa.

Finalmente recomendaría que se considere el tamaño de una imagen al vincularla ya que entre más pequeña (10x10pxs) sea ésta, mayor será el esfuerzo que hará el procesador para hacerla ajustar al tamaño completo de la pantalla.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate