Lo primero es especificar que no voy a crear el MovieClip desde el código , si no que voy a usar uno que he dibujado en un fotograma y que por tanto puedo interpolar ( por ejemplo ) fácilmente .
Pues eso lo primero dibujamos un clip en la pantalla y le damos un nombre de instancia ImagenIntro en mi caso ...
Y después añadimos el código en el siguiente fotograma , uno de los problemas que yo encontraba al intentar este proceso es que me daba un error de Objeto fuera de linea de tiempo de compilación o algo así ... y no era mas que parece ser que Flash lee primero el código y luego la pantalla , de tal forma si intentas crear el MC en el mismo fotograma que el código AS3 no lo leerá , ya que cuando empiece a leer el código el MovieClip no existiría aún . Así que yo creo el Movieclip en un fotograma y en el fotograma siguiente pongo el código :
Código ActionScript :
//Primero los imports , si utilizáis Flash CS5 a medida que tecleis el código el los creará automáticamente ... import flash.net.URLRequest; import flash.events.Event; import flash.display.Loader; import flash.display.MovieClip; import flash.display.Shape; import fl.transitions.*; import fl.transitions.easing.*; // Declaro ImagenIntro como un MovieClip , por lo que tengo entendido Flash con solo el nombre de instancia no // diferencia si se trata de un MovieClip o de un Sprite var ImagenIntro:MovieClip ; // Declaramos ldr como una variable que contendrá un loader var ldr:Loader = new Loader(); //Asignamos a ImagenIntro la representación de ldr ImagenIntro.loader=(ImagenIntro.addChild(ldr)); // Declaramos las variables que van a contener la dirección de la fotografía que queremos cargar var url:String = "Flash/Images/Foto_Intro.jpg"; var urlReq:URLRequest = new URLRequest(url); // Cargamos a ImagenIntro la dirección de la fotografía ImagenIntro.loader.load(urlReq); //TransitionManager carga el efecto Wipe en el mc mc_intro. Es un efecto para la imagen . TransitionManager.start(ImagenIntro , {type:Wipe}); //Creamos una función , que se cargará cuando el contendor ldr comience a cargar la imagen , esto seria //incluso antes de estar asignado al MovieClip , yo lo utilizo para redimensionar la imagen ldr.contentLoaderInfo.addEventListener(Event.INIT, iniciocarga); function iniciocarga(event:Event) { ldr.width = 935; ldr.height = 300; } //Hasta aquí ya tendriamos la imagen en pantalla , pero ademas a mi me interesa usarla como botón una vez cargada //Asi que creo una funcion sobre el Movieclip ImagenIntro , para cuando el evento de ratón MouseDown se efectúe . ImagenIntro.loader.addEventListener(MouseEvent.MOUSE_DOWN, moverintro); function moverintro(e:Event):void { gotoAndPlay(71); ImagenIntro.loader.removeEventListener(MouseEvent.MOUSE_DOWN, moverintro); //Añado esta linea borrando la función por que solo quiero que se pueda clicar una vez en el movieclip . } stop();
A mi este código me sirve como intro de mi pagina , www.cesarsantosgonzalez.com ( esta esta programada en Flash8 ) pero el resultado seria el mismo . La novedad es que con este código en AS3 cuando me canse de la foto de inicio solo tengo que subir una nueva al host con el nombre de la anterior sobreescribiéndola y sin tocar nada más ya saldría la nueva en pantalla .
Supongo que todo esto puede ser más fácil de hacer, pero así funciona.
Espero que les sea útil . Un Saludo .