Comunidad de diseño web y desarrollo en internet online

Experimentando con, eventos, funciones, variables

Citar            
MensajeEscrito el 28 Ene 2010 07:29 am
La verdad visto este ejemplo no hacen falta tener valores globales , es como si se cargaran los valores en una misma variable, fuera de un evento la variable tiene un valor dentro tiene otro valor si cambiamos la funcion queda el valor de la variable que esta ligado al evento.

Código ActionScript :

var tuktuk:uint=78;
var boton:Sprite=new Sprite();
boton.graphics.beginFill(0xFFCC00);
boton.graphics.drawCircle(100,100,10);
boton.buttonMode=true;
this.addChild(boton);
trace("fuera de qualquier funcion tuktuk vale  "+tuktuk); 
boton.addEventListener(MouseEvent.CLICK,clickboton);
function clickboton(e:MouseEvent){
   trace ("antes del cambio de funcion click tuktuk vale  "+tuktuk);
   tuktuk=97;
   trace ("despues del cambio de funcion click tuktuk vale  "+tuktuk);
}
boton.addEventListener(MouseEvent.CLICK,clickboton1);
function clickboton1(urk:MouseEvent){
   trace("aki le he puesto una segunda funcion a un mismo evento");
   trace ("antes del segundo cambio de variable en otra funcion click tuktuk vale  "+tuktuk);
   tuktuk=108;
   trace ("despues del segundo cambio de variable en otra funcion click tuktuk vale  "+tuktuk);
}
boton.addEventListener(MouseEvent.ROLL_OUT,clickboton2);
function clickboton2(urkinaona:MouseEvent){
   trace("aki le he puesto una tercera funcion a un evento diferente");
   trace ("antes del tercer cambio de variable en otra funcion click y otro evento tuktuk vale  "+tuktuk);
   tuktuk=222;
   trace ("despues del tercer cambio de variable en otra funcion click y otro evento tuktuk vale  "+tuktuk);
}

voy a probar que valor tiene tuktuk si el evento esta unido a otro boton

Código ActionScript :

var tuktuk:uint=78;
var boton:Sprite=new Sprite();
boton.graphics.beginFill(0xFFCC00);
boton.graphics.drawCircle(100,100,10);
boton.buttonMode=true;
this.addChild(boton);
trace("fuera de qualquier funcion tuktuk vale  "+tuktuk); 
boton.addEventListener(MouseEvent.CLICK,clickboton);
function clickboton(e:MouseEvent){
   trace ("antes del cambio de funcion click tuktuk vale  "+tuktuk);
   tuktuk=97;
   trace ("despues del cambio de funcion click tuktuk vale  "+tuktuk);
}
boton.addEventListener(MouseEvent.CLICK,clickboton1);
function clickboton1(urk:MouseEvent){
   trace("aki le he puesto una segunda funcion a un mismo evento");
   trace ("antes del segundo cambio de variable en otra funcion click tuktuk vale  "+tuktuk);
   tuktuk=108;
   trace ("despues del segundo cambio de variable en otra funcion click tuktuk vale  "+tuktuk);
}
boton.addEventListener(MouseEvent.ROLL_OUT,clickboton2);
function clickboton2(urkinaona:MouseEvent){
   trace("aki le he puesto una tercera funcion a un evento diferente");
   trace ("antes del tercer cambio de variable en otra funcion click y otro evento tuktuk vale  "+tuktuk);
   tuktuk=222;
   trace ("despues del tercer cambio de variable en otra funcion click y otro evento tuktuk vale  "+tuktuk);
}
var boton2:Sprite=new Sprite();
boton2.graphics.beginFill(0xCCCCCC);
boton2.graphics.drawCircle(200,200,10);
boton2.buttonMode=true;
this.addChild(boton2);
boton2.addEventListener(MouseEvent.CLICK,clickboton3);
function clickboton3(eukas:MouseEvent){
   trace ("antes del cambio de funcion en otro sprite y evento click tuktuk vale  "+tuktuk);
   tuktuk=1000;
   trace ("despues del cambio de funcion en otro sprite y evento click tuktuk vale  "+tuktuk);
}

Por lo que aki se ve claramente que el valor o valores se guardan dentro de MOUSEEVENT ya que es lo unico que no he variado. Mi siguiente pregunta es que valor tendra tuktuk en un evento por ejemplo keyboard la respuesta tendria que ser tuktuk vale 78 de todas formas lo probare.

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 28 Ene 2010 07:46 am
Lo estás liando. Fijaté en este post
Existen variables temporales -definidas a nivel de función- y variables globales -definidas a nivel de frame, o de clase- Las variables temporales sólo son accesibles dentro de la función donde están definidas, las variables globales pueden usarse donde se quiera -dentro de una función o donde se quiera-
Cuando añadimos un listener lo único que hacemos es que se ejecute una función cuando ocurre algo pero es una función como cualquier otra
NOTA:Sería bueno, siempre que el post tenga relación, que no abrieras un nuevo tema

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Ene 2010 07:49 am

Código ActionScript :

var tuktuk:uint=78;
var boton:Sprite=new Sprite();
boton.graphics.beginFill(0xFFCC00);
boton.graphics.drawCircle(100,100,10);
boton.buttonMode=true;
this.addChild(boton);
trace("fuera de qualquier funcion tuktuk vale  "+tuktuk); 
boton.addEventListener(MouseEvent.CLICK,clickboton);
function clickboton(e:MouseEvent){
   trace ("antes del cambio de funcion click tuktuk vale  "+tuktuk);
   tuktuk=97;
   trace ("despues del cambio de funcion click tuktuk vale  "+tuktuk);
}
boton.addEventListener(MouseEvent.CLICK,clickboton1);
function clickboton1(urk:MouseEvent){
   trace("aki le he puesto una segunda funcion a un mismo evento");
   trace ("antes del segundo cambio de variable en otra funcion click tuktuk vale  "+tuktuk);
   tuktuk=108;
   trace ("despues del segundo cambio de variable en otra funcion click tuktuk vale  "+tuktuk);
}
boton.addEventListener(MouseEvent.ROLL_OUT,clickboton2);
function clickboton2(urkinaona:MouseEvent){
   trace("aki le he puesto una tercera funcion a un evento diferente");
   trace ("antes del tercer cambio de variable en otra funcion click y otro evento tuktuk vale  "+tuktuk);
   tuktuk=222;
   trace ("despues del tercer cambio de variable en otra funcion click y otro evento tuktuk vale  "+tuktuk);
}
var boton2:Sprite=new Sprite();
boton2.graphics.beginFill(0xCCCCCC);
boton2.graphics.drawCircle(200,200,10);
boton2.buttonMode=true;
this.addChild(boton2);
boton2.addEventListener(MouseEvent.CLICK,clickboton3);
function clickboton3(eukas:MouseEvent){
   trace ("antes del cambio de funcion en otro sprite y evento click tuktuk vale  "+tuktuk);
   tuktuk=1000;
   trace ("despues del cambio de funcion en otro sprite y evento click tuktuk vale  "+tuktuk);
}
stage.addEventListener(KeyboardEvent.KEY_DOWN,cualkiertecla);
function cualkiertecla (uz:KeyboardEvent){
   trace(tuktuk);
}

si le damos a la espaciadora el trace que hace de ese evento keyboard el valor de tuktuk sera el ultimo valor de tuktuk dentro de qualquier evento, en mi caso despues de click en el primer y segundo boton le doy a la espaciadora y me da 1000 que es el valor adqurido de tuktuk despues de hacer click en el segundo boton. Esto me hace preguntar como puedo borrar ese evento haciendo que me desaparezca el valor de tuktuk cuando creo otro evento, probe con removeEvent pero cuando le creo otro evento o incluso cuando lo creo en otro frame ese valor persiste a menos que lo modifique, que por lo visto es la unica manera que he visto que podian devolver los valores iniciales de tuktuk es decir crear un evento en que me devuelva el valor modificado de tuktuk en 78. Si teneis sugerencias o experimentos nuevos cualesquiera sobre la memoria de los valores combinando funcion valor variable y eventos postead aki.

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 28 Ene 2010 08:04 am
Vale por lo visto cuando ponemos una variable tuktuk dentro de una funcion esa variable se carga en una memoria temporal. Y por cierto eliseo creo que es bueno hacer el proceso por la gente que empieza (grupo en el que me incluyo)de experimentar akello que se desconoce, postearlo y sugerir preguntas nuevas que con la ayuda de los que sabeis ( que debe ser tu caso) podamos ir conociendo AS3.
NOTA. Aprender no se trata de saber los datos por que alguien que sabe mas dice que son asi, aprender es descubrir que datos son y como son.

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

msie7

 

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