Hace nada me surgió la necesidad de hacer una transición/fade de un color inicial a un color final junto con la clase graphics y con el mínimo código posible así que me puse a buscar info y comprimir el código a base de operadores de bit, finalmente el resultado fue el siguiente.
Para probar copiar y pegar el codigo en flash e insertar un movieclip en la escena con nombre de instancia rst
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import flash.display.Shape; import flash.events.Event; // var s:Shape = new Shape(); addChild(s); // var t:int = 100;//Tiempo duracion de la transicion del color inicial al color final var p:int = 0; // function fade(i:uint, f:uint, r:Number):uint {//i=Color Inicial, f=Color Final, r=Rango Decimal. return (((i >> 16) + ((f >> 16)-(i >> 16))*r)<<16 | ((i >> 8 & 0xFF) + ((f >> 8 & 0xFF)-(i >> 8 & 0xFF))*r)<<8 | ((i & 0xFF)+((f & 0xFF)-(i & 0xFF))*r)); } // function onFrame(e:Event):void { if (p <= t) { s.graphics.clear(); s.graphics.lineStyle(2,fade(0xFFFF00,0xFF0000,p/t)); s.graphics.drawCircle(75,75,40); p++; } } // addEventListener("enterFrame", onFrame); rst.addEventListener("click", function(){p=0;}); |
Ejemplo:
This movie requires Flash Player 9
[download id=»10″ format=»2″]
Social Report xavirobot
One comment on “AS3 – Snippet – MC – Cambio de color con efecto de transición o fade de un color inicial a un color final utilizando operaciones de bit con flash actionscript AS3”