Follow me @Tmeister

Clase TiledBackground

ESCRITO POR Tmeister EN July - 4 - 2008

Que tal gente.

Hace un buen rato que no posteo, pero aquí estoy de vuelta con algo sencillo.
TiledBackground es una clase simple la cual toma una imagen externa (jpg, gif, png) y la repite tantas veces quepa en el navegador tal y como lo hiciéramos en CSS :)

Además de que tiene un par de parámetros, se puede sobreponer un gradiente radial para hacer un efecto sobre el fondo. Los colores y alphas del gradiente se pueden configurar.

TiledBackground

package net.tmeister.utils.background
{

	import flash.display.BitmapData;
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.display.Stage;
	import flash.events.Event;
	import flash.geom.Matrix;
	import flash.net.URLRequest;
	import flash.display.StageScaleMode;
	import flash.display.StageAlign;
	import flash.display.GradientType;  

	public class TiledBackground extends Sprite
	{
		private var _pattern:String;
		private var _container:Sprite;
		private var _image:Loader;
		private var _stage:Stage;
		private var _gradient:Boolean = true;
		private var _gProperties:Object = {};

		public function TiledBackground(stage:Stage)
		{
			_stage = stage
			_stage.scaleMode = StageScaleMode.NO_SCALE;
			_stage.align = StageAlign.TOP_LEFT;
			_stage.addEventListener(Event.RESIZE, resize);
		}
		public function set pattern (urlPattern:String):void
		{
			_pattern = urlPattern;
			loadPattern();
		}
		public function get pattern():String
		{
			return _pattern;
		}
		public function set radialGradient(value:Boolean):void
		{
			_gradient = value;
		}
		public function get radialGradient():Boolean
		{
			return _gradient;
		}
		public function set gradientProperties(properties:Object):void
		{
			_gProperties = properties;
		}
		public function get gradientProperties():Object
		{
			return _gProperties;
		}
		private function loadPattern():void
		{
			var patternLoader:Loader = new Loader();
			var patternUrl:URLRequest = new URLRequest(_pattern);
			patternLoader.load(patternUrl);
			patternLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onPatternLoaded);
		}
		private function onPatternLoaded(e:Event):void
		{
			_image = e.target.loader;
			createBackground();
			createRadialGradient()
		}
		private function createBackground():void
		{
			if (_container != null)
			{
				removeChild(_container);
				_container = null;
			}
			var bitmap:BitmapData = new BitmapData (_image.width, _image.height);
			bitmap.draw(_image)
			_container = new Sprite();
			_container.graphics.beginBitmapFill(bitmap);
			_container.graphics.drawRect(0,0, _stage.stageWidth , _stage.stageHeight);
			_container.graphics.endFill();
			addChild(_container);
		}

		private function createRadialGradient():void
		{
			if (! _gradient )
			{
				return;
			}
			var matrix:Matrix = new Matrix();
			var gType:String = GradientType.RADIAL;
			matrix.createGradientBox(_stage.stageWidth,_stage.stageHeight,0,0,0);
			var gColors:Array = [(_gProperties.insideColor) ? _gProperties.insideColor : 0xffffff, (_gProperties.outsideColor) ? _gProperties.outsideColor : 0xffffff];
			var gAlphas:Array = [(_gProperties.insideColorAlpha) ? _gProperties.insideColorAlpha : .15 ,(_gProperties.outsideColorAlpha) ? _gProperties.outsideColorAlpha : 0];
			var gRatio:Array = [0,255];
			var bound:Sprite = new Sprite();
			bound.graphics.beginGradientFill(gType,gColors,gAlphas,gRatio,matrix);
			bound.graphics.drawRect(0,0,_stage.stageWidth,_stage.stageHeight);
			addChild(bound);
		}
		private function resize(e:Event):void
		{
			createBackground();
			createRadialGradient()
		}
	}
}

Uso:

package
{
	import flash.display.Sprite;
	import net.tmeister.utils.background.TiledBackground

	public class sampleTiled extends Sprite
	{
		public function sampleTiled()
		{
			var background:TiledBackground = new TiledBackground(stage);
			background.pattern = "bg1.gif"
			background.gradientProperties = {insideColor:0xffffff, outsideColor:0xffffff, insideColorAlpha:.05, outsideColorAlpha:0}
			addChild(background)
		}
	}
}

Aquí el ejemplo y como siempre los archivos fuente están disponibles.

Archivos para descarga

download

Download: TiledBackground.zip
Version: 0.1
Updated: July 4, 2008
Size: 12.42 KB

Saludos!!

VN:F [1.4.6_730]
Rating: 0.0/10 (0 votes cast)

Popularity: 4% [?]

 
Compartir

  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • BarraPunto
  • Faves
  • MySpace
  • Technorati
  • TwitThis
  • LinkedIn
  • Ping.fm
  • FriendFeed
  • Meneame
  • Twitter

Post Similares

3 Responses to “Clase TiledBackground”

  1. Zguillez says:

    Muy buena la clase, sobretodo lo del degradado queda muy c00l ;)
    saludos

    VA:F [1.4.6_730]
    Rating: 0.0/5 (0 votes cast)
  2. Alejandro says:

    Saludos amigo.

    Quiciera saber si me puedes ayudar, estoy desarrollando un Web, y he tenido muchos problemas con el size y el background de mi página, se me ocultan los elemnto como texto e images and the backgroun no llena completamente mi pag. Quiciera resize my BG y que mis elementos contenidos en la pag. no perdieran la calidad, si puedes ayudarmen te lo agradeseré siempre. Me puede mandar cualquier info. por mi mail si lo deseas.

    Gracias por adelantado.

    VA:F [1.4.6_730]
    Rating: 0.0/5 (0 votes cast)
  3. [...] – bookmarked by 5 members originally found by n5238 on 2009-01-05 Clase TiledBackground http://klr20mg.com/2008/07/04/clase-tiledbackground/ – bookmarked by 2 members originally found by [...]

Leave a Reply

Acerca de mi
Enrique Chavez

Enrique Chávez también es conocido como @Tmeister es un desarrollador, emprendedor, poeta y loco.

Geek autodeclarado y apasionado de todo lo que tiene que ver con tecnología y desarrollo.

Cuenta con una experiencia de más de 7 años en el ramo del desarrollo, creando, sobre todo, aplicaciones web en la empresa Sapotek.

A finales del 2008 crea, junto con 3 colegas, la consultoría llamada AureaCode, enfocándose a brindar servicios de desarrollo web en todas sus variantes.

Si necesitas algún tipo de información o consulta por favor no dude en escribir.

View Enrique Chávez's profile on LinkedIn

Carlos Enrique Chavez Garcia's VisualCV

RSS Feed

Links Patrocinados
Comunidad
Ya eres usuario?
Login
Ingresa usando tu cuenta de Facebook
Ultimas visitas
Powered by Sociable!
    Mini Posts
    Google indexa contenido externo de SWFs

    Google ha hecho el anuncion de que ahora puede indexar informacion externa de los SWF, con informacion externa se refieren a textos que se cargan al vuelo mediante archivos txt, xml, html.

    Toda la informacion al respecto la pueden encontrar en el anuncio oficial

    2009-06-19 13:04:14
    Cambiando de nuevo la cara

    De nuevo  cambiando la cara del blog, agregue unas cuantas ondas sociales, Login con Facebook, updates de Twitter, un Feedback más cómodo, así nos olvidamos de la vieja forma de contacto.

    Este será, de ahora en adelante, mi sitio principal Tmeister.net será solo una redirección a este dominio, aunque eso lo hare en unos días más.

    Enjoy. 

    2009-04-11 17:54:31
    Torneos de Poker 2do Lugar

    Segundo lugar en el torneo de US$1,000 garantizados, Balance +US$200, perdidas del dia -US$50, Ganancias totales el dia de hoy +US150 8)

    2008-11-23 23:32:30
    Video destacado