Foros del Web » Creando para Internet » Flash y Actionscript »

SharedObject

Estas en el tema de SharedObject en el foro de Flash y Actionscript en Foros del Web. Holas... No he podidar dar con un buen manual para crear un SharedObject y así crear una función savePassword(checkbox) de nombre de usuario, alguien me ...
  #1 (permalink)  
Antiguo 01/06/2003, 14:14
 
Fecha de Ingreso: agosto-2001
Ubicación: Santiago de Chile
Mensajes: 98
Antigüedad: 23 años, 2 meses
Puntos: 0
SharedObject

Holas...

No he podidar dar con un buen manual para crear un SharedObject y así crear una función savePassword(checkbox) de nombre de usuario, alguien me podría da una manito?.

Se los agradesco...


::Maguak::
__________________
maguak
  #2 (permalink)  
Antiguo 01/06/2003, 16:44
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 10 meses
Puntos: 193
No es nada Complicado:

en tu pelicula debes de tener 2 campos de Entrada (user y pass) y ckaro el CheckBox (salva) y un Boton de Enviar (envia_btn). ahora el AS:

Código:
//Propiedades del CheckBox
salva.setLabel("Recordar Password");
salva.setStyleProperty("textSize", 11);
salva.setChangeHandler("quiere");
function quiere(component) {
	guardaInfo = component.getValue();
	trace(guardaInfo);
}
//Checamos si existe Info, Si existe la asignamos a 
//los campos de entrada
Passwd = SharedObject.getLocal("PassTusitio");
if (Passwd.data.user != null) {
	user.text = Passwd.data.user;
	pass.text = Passwd.data.pass;
	delete Passwd;
}
envia_btn.onPress = function() {
	if (guardaInfo) {
		//gotoAndStop(loquesea)
		trace("Guardando");
		Passwd = SharedObject.getLocal("PassTusitio");
		Passwd.data.user = user.text;
		Passwd.data.pass = pass.text;
		Passwd.flush();
		delete Passwd;
	} else {
		trace("No guardes nada");
	}
};
Ok lo primero que hacemos es asignarle un Label al CheckBox le cambiamos las propiedades del Texto y por ultimo asignamos la funcion ChangeHandler.

Despues Checamos si existe el Archivo PassTusitio que es que tiene la Info que queremos si existe tomamos el user y el pass y se los asignamos a los Campos de Entrada.

la funcion "quiere" asignara "False" o "True" a la variable guardaInfo segun su estado.

Por ultimo cuando oprime el Boton de enviar evalua la Variable guardaInfo si es "true" tomara los valores de los Campos de Entrada y los guardara en el Archivo PassTusitio.sol para despues tomarlos.
y si el Valor el False no hace nada..

Espero te sirva.

El FLA te lo debo no tengo donde colgarlo

Saludos!!
  #3 (permalink)  
Antiguo 02/06/2003, 07:58
 
Fecha de Ingreso: agosto-2001
Ubicación: Santiago de Chile
Mensajes: 98
Antigüedad: 23 años, 2 meses
Puntos: 0
TMesister:

No entiendo por qué pones delete Passwd; , El asunto es que cuando entre denuevo debería recivir las variables del user y pass y el checkbox debería estar en true o tiqueado. Ahora no logro que los campos de textos estén con la información cuando reingreso.

Asigné a los campos de textos dinámicos los nombres de instancia
pass y user; y le asigné al checkbox el nombre de instacia 'salva'.

No será que al reigresar el checkbox, como simpre es falso, no me muestra los campos de texto con las variables?

Te agradesco tu ayuda.

::maguak::
__________________
maguak
  #4 (permalink)  
Antiguo 02/06/2003, 09:25
 
Fecha de Ingreso: mayo-2003
Mensajes: 119
Antigüedad: 21 años, 6 meses
Puntos: 0
Maguak, tu usaute sharedobject en una version anterior de tu sitio, cuando pedías el nombre del visitante y despues lo saludabas, no recuerdas?
__________________
Saludos
  #5 (permalink)  
Antiguo 02/06/2003, 10:10
 
Fecha de Ingreso: agosto-2001
Ubicación: Santiago de Chile
Mensajes: 98
Antigüedad: 23 años, 2 meses
Puntos: 0
Hola....

Si claro, lo usaba, pero ahora quiero que sea del componente checkbox. 'Save pass'.
Me parece; acepto ideas, que es lo mas seguro para entrar en una zona segura. Y darle al mismo tiempo la oportunidad al usuario de grabar su nombre y su pass.

Ahora, mi duda es:

Al usar este componente al reingresar como lo hago para que vuelva true y ponga el nombre y la pass del usuario en sus campos.
__________________
maguak
  #6 (permalink)  
Antiguo 02/06/2003, 11:11
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 10 meses
Puntos: 193
Este ejemplo lo probe y funciona Perfecto.

Ojo los campos deben de ser InputText (texto de Entrada) y lo que debes nombrar es el Nombre de Instancia de Dichos Campos (user y pass) abajo de donde escoges el tipo de texto hay un recuadro que dice <instance name> ahi va el nombre de instancia no en el recuadro que dice var.

ahora para que el checkBox este siempre palomeado utiliza :

Código:
salva.setValue(true);
Entonces el Codigo queda:

Código:
//Propiedades del CheckBox
salva.setLabel("Recordar Password");
salva.setStyleProperty("textSize", 11);
salva.setChangeHandler("quiere");
function quiere(component) {
	guardaInfo = component.getValue();
	trace(guardaInfo);
}
//Checamos si existe Info, Si existe la asignamos a 
//los campos de entrada
Passwd = SharedObject.getLocal("PassTusitio");
if (Passwd.data.user != null) {
	user.text = Passwd.data.user;
	pass.text = Passwd.data.pass;
        salva.setValue(true); 
	delete Passwd;
}
envia_btn.onPress = function() {
	if (guardaInfo) {
		//gotoAndStop(loquesea)
		trace("Guardando");
		Passwd = SharedObject.getLocal("PassTusitio");
		Passwd.data.user = user.text;
		Passwd.data.pass = pass.text;
		Passwd.flush();
		delete Passwd;
	} else {
		trace("No guardes nada");
	}
};
el delete Passwd solo lo utilizo para no tener variables que ya no voy a necesitar si quieres lo puedes quitar.

Debe de Funcionar!!

Saludos!!
  #7 (permalink)  
Antiguo 02/06/2003, 12:19
 
Fecha de Ingreso: mayo-2003
Mensajes: 119
Antigüedad: 21 años, 6 meses
Puntos: 0
yo tambien lo probé y funciona
__________________
Saludos
  #8 (permalink)  
Antiguo 02/06/2003, 12:25
 
Fecha de Ingreso: agosto-2001
Ubicación: Santiago de Chile
Mensajes: 98
Antigüedad: 23 años, 2 meses
Puntos: 0
Super!!!!!!!!!!!!!!

Se los agradesco.

este es el script que devuelve el combobox true?
salva.setValue(true);


Si, super...
__________________
maguak
  #9 (permalink)  
Antiguo 03/06/2003, 08:08
 
Fecha de Ingreso: febrero-2002
Mensajes: 442
Antigüedad: 22 años, 9 meses
Puntos: 2
jijiji!! yo tambien lo probe!!! Funciona
This is Perfect!!!
Muy Bien amigo TMesister!
Creo que te voy a tener como consultor! ya que estoy justo con una idea que estaba armando con Shared Object... pero primero quiero solucionar unos problemitas de arrays que tengo por ahi....
Un saludo muy grande!

Amigo TMesister.... me base en tu ejemplo...
la idea es asi...
Cuando haces un click sobre un movieclip hace un DuplicateMC y lo crea en esas posiciones x,y
Cada ves que creo uno... voy guardando sus posiciones en unos arrays...
Entonces una ves que pongo guardar tengo que recorrer los arrays para que me guarde las posiciones x e y de los arrays en variables del SO(sharedObj)....
Me gustaria que lo mires porque no se que estoy haciendo mal ya que cuando recupero los datos me los trae como undefined...
te dejo el codigo......... (esta todo comentado).

_root.desktop_mc.onRelease = function() {
X = X + 1;
///Cuando realizo un click en desktop_mc guardo las pos(x,y) y duplico BotLabel_mc
var xtarget=_root._xmouse;
var ytarget=_root._ymouse;
BotLabel_mc.duplicateMovieClip("BotLabel"+x+"_mc", x,x);
_root["BotLabel"+x+"_mc"]._x = xtarget;
_root["BotLabel"+x+"_mc"]._y = ytarget;

//Crear Array. e ir agregando datos a medida que voy haciendo un DuplicateMC
if (x == 1){
Instances = new Array("BotLabel"+x+"_mc");
PositionX = new Array([this._xmouse]);
PositionY = new Array([this._ymouse]);
}else{
///array con nombre de los mc que creo con duplicateMC,
//solo lo uso para sacar la cantidad de MC con instance.length
Instances2 = new Array("BotLabel"+x+"_mc");
Instances=Instances.concat(Instances2);
///array con las posiciones x de cada mc
PositionX2 = new Array([this._xmouse]);
PositionX=PositionX.concat(PositionX2);
///array con las posiciones y de cada mc
PositionY2 = new Array([this._ymouse]);
PositionY=PositionY.concat(PositionY2);
}
///Recorro todos los Arrays y los muestro///
f = Instances.length;
for(n=0; n<f; n++){
trace("- x:" + PositionX[n] + "- y:" + PositionY[n]);
}
}

//Propiedades del CheckBox
salva.setLabel("Recordar Texto");
salva.setStyleProperty("textSize", 11);
salva.setChangeHandler("quiere");
function quiere(component) {
guardaInfo = component.getValue();
// trace(guardaInfo);
}
//Checamos si existe Info
InstanceSO = SharedObject.getLocal("NicoSO");
if (InstanceSO.data.cant != null) { // si el SO tiene info...
///mi text se llama..... txt_Text
f = InstanceSO.data.cant; //Cantidad de mc a duplicar
trace(f); // muestro cant
for(n=0; n<f; n++){
//aca duplicateMC... los crea pero no asigna las posiciones :(
BotLabel_mc.duplicateMovieClip("BotLabel"+n+"_mc", n,n);
trace(InstanceSO.data.btns[n].Xpos); // muestro la pos de x pero no hay caso...
///me la muestra como undefined
_root["BotLabel"+n+"_mc"]._x = InstanceSO.data.btns[n].Xpos;
_root["BotLabel"+n+"_mc"]._y = InstanceSO.data.btns[n].Ypos;
_root["BotLabel"+n+"_mc"].text_mc.txt_Text.text = InstanceSO.data.texto[n];
///ACA TENGO QUE VOLVER A CREAR LOS ARRAYS
///para asignarle sus datos correspondientes
}
salva.setValue(true);
delete InstanceSO;
}else{
trace("NicoSO vacio");
}
envia_btn.onPress = function() {
if (guardaInfo) {
//gotoAndStop(loquesea)
trace("Guardando");
InstanceSO = SharedObject.getLocal("NicoSO");
f = Instances.length;
for(n=0; n<f; n++){
InstanceSO.data.texto[n] = _root["BotLabel"+n+"_mc"].text_mc.txt_Text.text;
//guardo las posiciones X,Y... sacando la info de los arrays..
InstanceSO.data.btns[n] = {Xpos : PositionX[n], Ypos: PositionY[n]};
InstanceSO.data.cant = f;
InstanceSO.flush();
}
delete InstanceSO;
} else {
trace("No guardes nada");
}
};

Espero puedas/sepas ayudarme. Gracias!
__________________
tech-nico.com

Última edición por OXIGENO; 03/06/2003 a las 08:08
  #10 (permalink)  
Antiguo 03/06/2003, 10:20
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 10 meses
Puntos: 193
Mira la verdad no tengo mucho tiempo para checar tu Codigo!!
Pero aqui te posteo un Ejemplo sencillo de como guardad y manipular Arrays con los SO.

Código:
//Array a guardar 
frutas_array = ["Mango", "Piña", "Manzana", "Pera"]; 
//Buscamos el archivo .sol si existe tomamos sus valores 
so = SharedObject.getLocal("frutas"); 
if (so.data.soFrutas != null) { 
   //Si existe la Info la tomamos y la metemos en un nuevo array
   //Ya que Flash No sabe que tipo de info es
   nuevo_array = so.data.soFrutas; 
   for (i=0; i<nuevo_array.length; i++) { 
      trace("Fruta "+i+" = "+nuevo_array[i]); 
   } 
} else { 
   trace("Primera vez"); 
} 
//Escribimos o modificamos el Archivo 
so = SharedObject.getLocal("frutas"); 
//escribimos el Contenido de la variable soFrutas que contenfra el 
//arreglo frutas_array 
so.data.soFrutas = frutas_array; 
so.flush(); 
delete so;
Espero te sirva!!

Saludos!!
  #11 (permalink)  
Antiguo 03/06/2003, 18:43
 
Fecha de Ingreso: febrero-2002
Mensajes: 442
Antigüedad: 22 años, 9 meses
Puntos: 2
Miles de Gracias!... lo voy a probar amigo!
LUEGO! te cuento como me fue!
Saludos

--------Te cuento ----------------
Estupendo!!!! el ejemplo que me pasaste de arrays anduvo a la perfeccion en mi aplicacion.
Sos un maestro!
__________________
tech-nico.com

Última edición por OXIGENO; 03/06/2003 a las 18:43
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:10.