Comunidad de diseño web y desarrollo en internet online

almacenar acciones en un Array ...para hacer un UNDO

Citar            
MensajeEscrito el 07 Abr 2008 06:56 pm
Pues eso, es posible almacenar acciones en un Array?, como?...y luego cómo se recuperarían?

Es para almacenar las acciones del usuario y que tenga la opcion de volver atrás, tipo history...intento
por ejemplo que si me pincha en el boton uno, me almacene ("Pinchado boton uno"), en un array, y que luego al pulsar en el boton del UNDO, me vaya recuperando las acciones...hasta un total de 5...de manera que en el array me vaya sustituyendo las posiciones de las acciones....

no se si me explico...

si puedo y logro avanzar algo pondré el código...pero todavía no he empezado...porque me lio...alguna idea?

gracias

Por outsider

74 de clabLevel



 

Madrid

firefox
Citar            
MensajeEscrito el 07 Abr 2008 09:34 pm
Eso lo puedes hacer "fácilmente" aplicando patrones de diseño, concretamente el patrón command

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

clabbrowser
Citar            
MensajeEscrito el 08 Abr 2008 08:56 am
me pierdo...he mirado donde dices, y en la ayuda de flash...pero no veo nada parecido..algun enlace mas concreto?...muchisimas gracias Zguillez!!!

Por outsider

74 de clabLevel



 

Madrid

firefox
Citar            
MensajeEscrito el 09 Abr 2008 06:02 pm
sigo peleandome con esto....alguien conoce algo del patron command y cómo aplicarlo en flash?

mil gracias

Por outsider

74 de clabLevel



 

Madrid

firefox
Citar            
MensajeEscrito el 09 Abr 2008 06:33 pm
Disiento, sería el patrón Memento

Si puedes hacerlo, pero tiene mas chicha de lo que parece. Los patrones son formas de estructurar la programación y cuando haces un UNDO no puedes "desejutar" un comando, sino mas bien volver la aplicación a un estado. Por ponerlo simple, supón que tu aplicación cambia de color un MC, cada uno de los estados de tu aplicación tiene una referencia a ese MC y el color que tiene ... y así todas las propiedades que tu aplicación le permita cambiar (tamaño por ejemplo)
Así entonces, lo primero que deberías plantearte es como describes un "estado" de tu aplicación y como haces para reconstruirlo, luego ya tienes una pista de lo que tienes que poner en tu array

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Abr 2008 07:21 am
voy comprendiendo....estoy con ello, almaceno la instancia del clip...y su color en el array...ahora me estoy "peleando" con la aplicación de ese array a alguna funcion ...ya os contaré
gracias

Por outsider

74 de clabLevel



 

Madrid

firefox
Citar            
MensajeEscrito el 10 Abr 2008 01:23 pm
No, el patrón command es la mejor opción para crear un sistema de "deshacer"
Lo que has de hacer es que cada clase que creas como comando crear tambien una funcion "inversa"
Por decirlo facil: si el comando suma 5 pixeles a la posicion X de un clip, creas una funcion que le resta 5 pixeles... y asi con todos los comandos.
Como puedes registrar la secuencia de comandos que vas ejecutando, para dehacer unicamente has de ejecutar esos comandos hacia atras con la función inversa... y listo

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 10 Abr 2008 01:44 pm
El concepto de acción para atrás es mas procedural, y si bien en muchos casos (sobre todo en simplificaciones) es fácil de entender, en otros casos (sobre en estructuras de datos complejas) no hay tal equivalente, sino un estado de la información anterior. Si borro un registro, el UNDO sería insertar, si aplico un filtro, el UNDO sería desaplicar, etc. En vez de buscar el opuesto, hago un snapshot del estado de datos, aunque claro, eso va en el tipo de aplicación ... muchos camimos conducen a Roma

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Abr 2008 02:55 pm
zguillez algun sitio donde pueda ver algun ejemplo de lo que cuentas?....no me aclaro...

mil gracias!

Por outsider

74 de clabLevel



 

Madrid

firefox
Citar            
MensajeEscrito el 11 Abr 2008 02:36 pm
Yo hice esto en una multimedia y lo que hice fue hacer una clase para cada objeto que tenga en la multimedia digase menu, por ejemplo de formata tal que pueda tener almacenado en el las transformacines que sufran y funcion actualizar para que cuando de atras me actulice el objeto, ademas tambien una clase para tipo de pantalla difente que lo que tendria seria una lista de los objetos que contiene, para cuando regrese a la pantalla entonces llamar a la funcion que me actuliza a los objetos dentro de su misma clase, y por ultimo almaceso en un array los objetos de las pantallas segun voy navegando inicialmente tendria ya por defecto el de la pantalla de incio y cuando cambio voy almacendo el nuevo y bueno cuando doy atras elimino el ultimo y doy actualizar al que queda como ultimo Bueno no se si te sirvira de algo esta explicacion pero almenos a mi me resulto asi.

Saludos

Por eduar

63 de clabLevel



 

msie
Citar            
MensajeEscrito el 16 Jul 2008 08:38 am
Hola a todos.

Personalmente estoy utilizando el command para implementar los undo/redo ya que me resultó super práctico por el tipo de aplicación que tengo, ahora bien, coincido con Jorge en la complejidad de algunas operaciones, en mi caso, se suman coordenadas, filtros , contenidos etc.... , es decir, no me basta con llamar a undo() para realizar la inversa porque tengo que mantener estados, algunos muy delicados.

Por cierto, un placer estar por aquí y sobretodo un cordial saludo Jorge :)

Por bftoni

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Jul 2008 10:22 am
Hey, que hay Tony !!! Bienvenido por estas tierras ;)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 07 Dic 2008 10:58 pm
UStedes (ya hablo como un latino XP) se están refiriendo a plicaciones muy complejas... Yo necesitaba este procedimiento para algo "en teoria" mucho más sencillo y esto es para obtener un boton VOLVER-ATRAS del tipo navegador. Es para un interactivo y he conseguido por el momento volver mediante una variable pero necesitaria almacenar según tengo entendido por medio de un array...

Por eriko

36 de clabLevel



 

Barcelona

firefox

 

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