Hola, vamos a crear una clase que cambie el alpha de un clip de pelicula cuando este se pulse.

Primero crearemos nuestro .fla del tamaño que queramos, en mi caso de 400px por 400px. En el he creado cuatro clips de película y les he puesto el nombre de clip1 hasta clip4.

pantallazo-menu-sobre1

En clase de documento he insertado «Menu», y he creado la clase Menu.as en la misma carpeta que el archivo .fla.

Una vez estamos en la clase el código:

  1. package
  2. {
  3. import flash.display.*;
  4. import flash.events.*;
  5. public class Menu extends MovieClip
  6. {
  7. private var clipList:Array = new Array();
  8. private var xPosList:Array = new Array();
  9. private var yPosList:Array = new Array();
  10. private var miAlpha:Number = 0;
  11. public function Menu()
  12. {
  13. clipList = [clip1, clip2, clip3, clip4];
  14. var i:Number = 0;
  15. for(i; i
  16. {
  17. xPosList.push(clipList[i].x);
  18. xPosList.push(clipList[i].y);
  19. }
  20. init();
  21. }
  22. private function init():void
  23. {
  24. var i:uint = 0;
  25. for(i; i
  26. {
  27. clipList[i].buttonMode = true;
  28. clipList[i].addEventListener(MouseEvent.CLICK, onClick);
  29. // clipList[i].x = Math.random()*stage.stageWidth;
  30. // clipList[i].y = Math.random()*stage.stageHeight;
  31. }
  32. }
  33. private function onClick(ev:MouseEvent):void
  34. {
  35. var obj:MovieClip = MovieClip(ev.currentTarget);
  36. // Variable que traera la instancia de la clase SubirAlpha
  37. var _camAlfa:SubirAlpha = new SubirAlpha(obj, 100, 5);
  38. this.addChild(MovieClip(obj));
  39. }
  40. }
  41. }

Y crearemos la clase SubirAlpha.as que contendrá:


  1. package
  2. {
  3. import flash.display.MovieClip;
  4. import flash.events.Event;
  5. public class SubirAlpha
  6. {
  7. private var _clip:MovieClip;
  8. private var _alfaFinal:Number;
  9. private var _alfa:Number;
  10. private var _inercia:Number;
  11. public function SubirAlpha(cual:MovieClip, desde:Number,  hasta:Number,
  12. inercia:Number=3)
  13. {
  14. _clip = cual;
  15. _alfaFinal = hasta;
  16. _alfa = desde;
  17. _inercia = inercia;
  18. // Ponemos el _clip al alpha desde el que queremos que empieze
  19. _clip.alpha = _alfa;
  20. init();
  21. }
  22. private function init():void
  23. {
  24. _clip.addEventListener(Event.ENTER_FRAME, cambAlfa);
  25. }
  26. private function cambAlfa(e:Event):void
  27. {
  28. _alfa += (_alfaFinal-_alfa)/_inercia;
  29. _clip.alpha = Number(_alfa/100)
  30. if(Math.round(_alfa) == 100)
  31. {
  32. _clip.removeEventListener(Event.ENTER_FRAME, cambAlfa);
  33. _clip.alpha = 1;
  34. }
  35. }
  36. }
  37. }

Con esto hemos creado una clase que nos llevará el alpha desde donde nosotros le digamos hasta el que queramos, de 0 a 100.

En as3 la propiedad alpha va de 0 a 1, esta clase se encarga de «traducir» este 0 o 100 a 0 o 1 según le digamos.