Comunidad de diseño web y desarrollo en internet online

Como usar foreach() con funciones y movieclips?

Citar            
MensajeEscrito el 07 Abr 2011 11:56 pm
Hola, estoy con un proyecto y apenas comence a trabajar con foreach y los loops o bucles, entonces llegue a un incoveniente simple, para añadir una funcion a todos los botones los use en un array y use foreach para aplicar la funcion trazar a los botones para un simple ROLL_OUT y ROLL_OVER, todo va bien, traza lo que quiero que trace, pero no se como hacer un gotoAndPlay(2) o "x" fotograma dentro de cada movie clip. Aqui la muestra del codigo:



import flash.events.MouseEvent;
import flash.display.MovieClip;

var btns:Array = ["btn1","btn2","btn3","btn4","btn5","btn6","btn7","btn8"];

function trazar(item:*, index:int, array:Array):void
{
addEventListener(MouseEvent.ROLL_OVER, sobre);
addEventListener(MouseEvent.ROLL_OUT, fuera);
}


function sobre(event:MouseEvent):void
{
trace("done");
}

function fuera(event:MouseEvent):void
{
trace("undone");
}

btns.forEach(trazar);

Espero que alguien me ayude, se que es simple y talvez obvio. Gracias de antemano a quien responda.

Por Daniel8902

5 de clabLevel



 

safari
Citar            
MensajeEscrito el 08 Abr 2011 06:55 am
Hola,
el problema es que no estás declarando un array de botones, o de MovieClip, sino que es un array de Strings, así que una de dos: o dentro de la función trazar usas el dato del array para obtener la referencia del botón por su nombre, o haces que el array contenga referencias a los clips, en lugar de a sus nombres. La segunda opción sería más o menos así:

Código ActionScript :

import flash.events.MouseEvent;
import flash.display.MovieClip;

var btns:Array = [btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8];

function trazar(item:*, index:int, array:Array):void
{
   var it:MovieClip = item as MovieClip;
   it.addEventListener(MouseEvent.ROLL_OVER, sobre);
   it.addEventListener(MouseEvent.ROLL_OUT, fuera);
}

function sobre(event:MouseEvent):void
{
   var mc:MovieClip = event.target as MovieClip;
   mc.x += 1;
}

function fuera(event:MouseEvent):void
{
   var mc:MovieClip = event.target as MovieClip;
   mc.y += 1;
}

btns.forEach(trazar);

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Abr 2011 07:15 am
Muchas gracias, sabia que hacia algo mal, era tan simple :twisted: y no lo veia, muchas gracias isidoro ^^.

Por Daniel8902

5 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.