sábado, mayo 17, 2008

Codigo Util para Flash

Cuando se trabaja en flash (especialmente as2) puede ser muy confuso saber que se puede llegar a la misma solución por varios caminos, hay cosas que parece que no tienen ninguna utilidad, por eso voy a hacer referencia a algunas cosas de esas que parece que no la tienen, con ejemplos que si lo son:

  • MovieClips como Arrays Cada que creamos un movieClip y dentro de este creamos otro, en flash se maneja como si fuera un array de movieClips, asi que ud sin saber cuantos hay dentro de este, o sus nombres, puede hacer referencia a ellos de la siguiente manera:

  for (item_mc in gran_mc) {
gran_mc.item_mc.gotoAndStop("mi_label");
}
  • Crear e Insertar Propiedades y Funciones Personalizadas Si bien podemos hacer clases en as2 y ponerle nuestras propiedades y metodos, no podemos modificar la clase movieClip, pero para cada instancia de movieClip podemos insertarle "al aire" funciones y propiedades que nos pueden servir si a una variedad de objetos duplicados tienen la misma propiedad o accion:


my_mc.id = 0
my_mc.my_function = function(){
trace("accion de la funcion")
}
//asi se llama a la funcion
my_mc.my_function();
  • Referenciando a un Botón dentro de sí mismo Muchas veces para manejar un gran numero de botones al mismo tiempo, con iguales acciones y comportamiento, lo que hago es insertarlos en un array, y lo recorro y le asigno las acciones por un for, pero tenia el problema que no podía referenciar directamente al botón porque al terminar el ciclo, la variable muere, y el valor que queda para el contador es el ultimo, entonces al referenciar el array con la variable, solo me señalaba el ultimo botón, así que para no perder la referencia de sí mismo en el botón, solo llamo a this, y el botón se llama a si mismo sin pasar por el array y todo solucionado:



var botones:Array = new Array();
for(var k=0; k < botones.length; k++){
botones[k].id = k;
botones[k].onPress = function(){
trace(this); //nombre real
trace(botones[k]); //nombre perdido por valor de k
trace(this.id); //id real
trace(k); //id perdido
}
}



espero sea de utilidad

No hay comentarios.: