verán tengo un swf que contiene varios mc que contienen 1 shape con una forma en blanco.
(estoy haciendo un juego de colorear) estaba todo muy simple hasta que se le ocurrio a quien me pidió hacerlo que quedara no un color plano sino un degradado.
la cosa es que no he podido darle gradiente al shape contenido...
para solventarlo cree una funcion que lo que hace es crearme un gradient en un sprite y lo pone debajo del shape en una mascara...
Código ActionScript :
import flash.display.DisplayObject; import flash.display.Graphics; import flash.display.GradientType; import flash.display.Shape; import flash.geom.Matrix; var sprite:Sprite = new Sprite(); var contLayer:MovieClip = MovieClip(e.target); var ncontainer:MovieClip = new MovieClip(); var gradCont:MovieClip = new MovieClip(); var cw:int = contLayer.width; var ch:int = contLayer.height; var cx:int = contLayer.x; var cy:int = contLayer.y; var m:Matrix = new Matrix(); m.createGradientBox( cw, ch, 1.92, 20, -40); sprite.graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, colorHex], [1, 1], [0x00, 0xFF], m); sprite.graphics.drawRect(0,0,cw,ch); gradCont.addChild(sprite); ncontainer.addChild(contLayer.getChildAt(0)); contLayer.addChildAt(gradCont, 0); contLayer.addChildAt(ncontainer, 0); gradCont.mask = ncontainer;
la cosa es que ya no puedo volver a colorearlo... imagino que por que ahora el shape es una mascara como lo soluciono.. hay un método para colorear el shape con el gradient y no tener que crear mascaras?
otra cosa que se me ocurrió era duplicar el shape y ponerlo encima de los mc dinámicos con un alpha, pero no he encontrado un método que me funcione para duplicar el shape. conocen alguno?