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.
Me parece que habían posteado algo similar hace tiempo, pero con un pattern pequeño, traté de hallas ese recurso cuando lo necesitaba pero nunca logré hallarlo.
Pero esto es lo que necesitaba.
Saludos!
simple, rapido y efectivo
Recuerdo que había otros que convertían la imagen en relleno y luego la agrandaban manualmente para conseguir el mismo efecto de mosaico. Pero por código siempre es más practico
De todas formas funciona mejor que antes.
Por cierto.. ¿porque no editaste ese en vez de publicar uno nuevo?
Por vanvanero el 07 de Enero de 2009
Pregunta ¿De que forma lo podría adaptar a flex 3? ¿Solo importo el flash generado o también se puede aprovechar directamente la clase?
Bleend :
Bleend :
Bleend :
Respecto al conflicto con el procesador, M@U originalmente :
Primero, cuando Bleend, Zah y un poco Zguillez, me ayudaron a checar que tanto procesador se tragaba el ejemplo al jugar como acordeonistas maníacos con el tamaño de la ventana, todos estuvieron de acuerdo en que era una cifra notable. En mi caso, con FireFox el uso del CPU se disparaba temporalmente hasta un 47-68% por un par de segundos y luego se estabilizaba.
Esto me hizo cuestionarme mucho sobre que era el causante de tal fallo, y como podría solucionarlo... Por fortuna me ayudo a optimizar la Clase (mas adelante).
Ahora, jamas me puse a probar una diferencia real entre el procesador que ocupaba mi ejemplo y el procesador que ocupa FireFox al cambiar el tamaño de la ventana como un acordeonista maníaco. Creo que ninguno de ellos tampoco.Grata sorpresa me llevo cuando descubro que con cualquier pestaña abierta YA se come un buen trozo de procesador al estarla reescalando constantemente, sin importar de que este dentro de esta.
Conclusión: El procesador se dispara a los altos cielos (60%) cuando cambias el tamaño de brutal manera la ventana por acción
y culpamisma de FireFox y NO por el reescalado que ejecuta el Listener en mi clase. Como sea, ajuste el Listener de la clase para que cargue la BitmapData únicamente cuando el tamaño de esta es inferior a la que el stage exige.M@U :
Por JESUSKANA el 08 de Enero de 2009
JESUSKANA :
M@U :
JESUSKANA :
Por fredybg el 09 de Enero de 2009
Por fernando el 13 de Enero de 2009
acabo de ver tu ejem. y funciona ok, estaba viendo el fucionamiento del degradado y quisiera saber si se podria centrar en pantalla...me explico si redimensionamos la ventana lo hace ok, hasta q tiene cierto tamaño minimo, entonces siempre se queda ajustado en top/left, el efecto seria que siguiera centrandose, es decir que saliera del navegador hacia la izda...es posible???
( vaya charla
Por davisete el 28 de Enero de 2009
1067: Implicit coercion of a value of type void to an unrelated type flash.geom:Matrix.
Cuando ejecuto el programa si no instancio la clase no hace nada en cambio instanciandola de la siguiente manera:
var miPattern:AddPattern = new AddPattern();
Es cuando me devuelvo el error.
Muchas de gracias de antemano y disculpad mi inexperiencia en as3.
Por JasonGamba el 12 de Febrero de 2009
Por xue el 20 de Febrero de 2009
Por Germán el 17 de Julio de 2009
Soy un novato a lo que flash respecta, y despues de finalmente descubrir como se utiliza una clase (o al menos eso es lo que creo haber descubierto), el error que aparece en la ventana de Errores de compilador es este:
5008: El nombre de la definición 'AddPattern' no contiene la ubicación de este archivo. Cambie el nombre de la definición en este archivo, o cambie el nombre del archivo. C:\Users\cyberpunk\Desktop\Pattern.as
Alguna mano?
Muchas gracias!
Por solisarg el 08 de Agosto de 2009
Jorge
solisarg-blog :
Por Manolito_BCN el 07 de Noviembre de 2009
1067: Conversión implícita de un valor de tipo void a un tipo flash.geom:Matrix no relacionado.
En el fla tengo un archivo gif exportado a AS con nombre de clase Pattern tal y como comentas...
Alguna pista?
Gracias de antemano
Por muse el 16 de Febrero de 2010
1067: Conversión implícita de un valor de tipo void a un tipo flash.geom:Matrix no relacionado.
¿Que es lo que se me escapa?
Por Crypanda el 21 de Marzo de 2010
1067: Implicit coercion of a value of type void to an unrelated type flash.geom:Matrix.
Por xpumax el 17 de Enero de 2012