Este paquete tiene un editor de propiedades propio, diferente del que trae Flash por defecto. Este editor de propiedades fue construido debido a que Flash no permite instanciar objetos con ActionScript durante el tiempo de diseño por problemas de seguridad. Todos los casos de usos que siguen son usando dicho editor. En las imágenes que en las tablas se mostrarán, el editor se muestra hacia la izquierda y detrás se muestra una escena de prueba.
Caso de uso: Seleccionar piezas para editar
Actor(es): Editor
Propósito: Seleccionar las piezas para las cuales se editarán sus parámetros
Resumen: Este caso de uso se inicia cuando el editor ha compilado la escena en modo de configuración y comienza a seleccionar las piezas para las cuales desea editar sus propiedades.
Precondiciones: Se debe haber establecido en la escena un componente llamado “ConfigurationPanel”.
Figura 4. La escena con el editor de texto
Acción del Actor Respuesta del Sistema
1. Da clic sobre una pieza la pantalla La pieza se muestra semitransparente
Caso de uso: Establecer si la pieza se congela
Actor(es): Editor
Propósito: Establecer si la pieza se congela.
Resumen: En ciertas y determinadas situaciones, es posible que se desee que alguna pieza en específico no se mueva. Esto suele suceder casi siempre para las piezas que son destinos de otras. El usuario puede establecer que una pieza esté "congelada" para evitar que ésta pueda moverse.
Precondiciones: Se debe haber establecido en la escena un componente llamado “ConfigurationPanel”.
Figura 5. El panel "Parámetro de transformación"
Acción del Actor Respuesta del Sistema
1. Selecciona una pieza en pantalla La pieza se muestra semitransparente 2. Busca en la sección "Parámetro de
transformación" y elije la opción “congelar”.
Marca la pieza como congelada e impide que la misma se mueva.
Caso de uso: Decidir cuáles transformaciones ejecuta la pieza.
Actor(es): Editor
Propósito: Decidir si la pieza ejecuta alguna transformación hacia sus puntos de destino o fuente.
Resumen: Existe un rango de tolerancia definido en el campo tolerance_radious que le indica la pieza a cuántos píxeles de distancia puede estar de alguno de sus puntos de destino para considerarse solucionada. Cuando una pieza es arrastrada hacia un punto que se encuentra a una distancia mayor que dicho rango de alguno de sus puntos de destino, se considera no resuelta. En ambos casos, la pieza puede quedar o bien en su punto fuente o bien en alguno de sus puntos de destino. Para ello, ejecuta una animación llamada transformación. Por defecto, dicha transformación es un vuelo en línea recta hacia el punto de destino o solución. El usuario puede decidir, si la pieza ejecuta alguna transformación, todas o ninguna.
Precondiciones: Se debe haber establecido en la escena un componente llamado “ConfigurationPanel”.
Figura 6. El panel "Parámetro de transformación" para editar transformaciones
1. Selecciona una pieza en pantalla La pieza se muestra semitransparente 2. Busca en la sección "Parámetro de
Transformación" y selecciona cuáles transformaciones desea ejecutar.
Guarda esta información y permite o impide que las piezas que ejecuten sus transformaciones acorde a lo pedido por el usuario.
Caso de uso: Establecer fotogramas de estado de la carátula
Actor(es): Editor
Propósito: Con el objetivo de hacer la interacción con el usuario más rica en recursos, la carátula puede cambiar ante determinados eventos tales como la pieza siendo arrastrada, la pieza siendo pinchada, siendo resuelta, volviendo a su lugar de origen, etc.
Resumen: Un MovieClip puede tener más de un fotograma. Haciendo uso de esta característica, es posible establecer carátulas que puedan variar ante los cambios de estados de la pieza.
Por ejemplo, si queremos que cuando el mouse pase por encima de la pieza ésta cambie de una mariposita blanca a una mariposita amarilla, se puede establecer un primer fotograma con una mariposa blanca y un segundo fotograma con una mariposa amarilla. Luego, estableceremos para el estado inicial el fotograma 1 y para el estado Mouse_Over el fotograma 2. Precondiciones: El usuario diseñador debe haber diseñado la carátula teniendo en cuenta
que (a no ser que se indique explícitamente lo contrario en algún fotograma) una vez iniciada una reproducción en Flash, ésta no se detendrá nunca, sino que entrará en un bucle infinito. De esta forma, la carátula debe separar los estados mediante procedimientos stop() y gotoAndPlay().
Figura 7. El panel Fotogramas de estado
Acción del Actor Respuesta del Sistema
1. Selecciona una pieza en pantalla La pieza se muestra semitransparente 2. Busca en la sección “Fotogramas de Estado”
Establece los fotogramas de estado para la selección.
Guarda esta información.
3. Ocasionalmente, en la lista desplegable "Estado" el usuario puede seleccionar el estado para previsualizarlo.
Hace que la pieza pase a ese estado y reproduce la carátula desde el fotograma indicado.
Caso de uso: Diseñar la carátula la pieza
Propósito: Diseñar la carátula la pieza.
Resumen: El diseñador debe diseñar la carátula de la pieza teniendo en cuenta cómo ésta cambia ante los eventos de la pieza.
Precondiciones: Ninguna
Acción del Actor Respuesta del Sistema
1. Diseña la carátula de la pieza y la asigna en la propiedad correspondiente
Muestra la carátula.
Caso de uso: Establecer el modo de juego
Actor(es): Editor
Propósito: Decidir el modo de juego del ejercicio
Resumen: Las piezas interactúan entre sí de diferentes formas: selección simple, arrastrar, selección múltiple, etc. este modo juego es controlado por el componente PuzzleManager.
Precondiciones: El usuario debe haber arrastrado una instancia de componente hacia la escena.
Figura 8. Editando el modo de juego
Acción del Actor Respuesta del Sistema
1. El usuario arrastra un instancia del componente
PuzzleManager hacia la escena y evita la
propiedad behavior
El sistema guarda dicha información.
Caso de uso: Hacer uso de los métodos y atributos.
Actor(es): Programador
Propósito: Utilizar los componentes en el código.
Resumen: El programador pueda hacer uso de los métodos y atributos públicos de los componentes del paquete, para programar el juego.
Acción del Actor Respuesta del Sistema
1. El usuario hace uso de las acciones y métodos públicos de los componentes del sistema.
El sistema responde acorde.
Caso de uso: Programar las transformaciones de la pieza
Actor(es): Programador
Propósito: Personalizar la transformación de solución o la transformación de regreso a la pieza.
Resumen: Las transformaciones pueden ser personalizadas asignando descendientes de la clase AbstractTransform a las propiedades solve_transform y
return_transform.
Precondiciones: Las instancias de los componentes del paquete deben estar inicializadas.
Acción del Actor Respuesta del Sistema
2. El usuario programa y asigna las transformaciones a la pieza.
Las piezas se animan hacia sus puntos de destino o fuente siguiendo las nuevas transformaciones, según sea el caso.
Caso de uso: Programar las reglas del juego
Actor(es): Programador
Propósito: Establecer un lugar centralizado en donde las piezas puedan notificar de las acciones que ha ocurrido sobre ellas
Resumen: Cuando el usuario realiza alguna interacción sobre alguna pieza, éstas lo notifican a su PuzzleManager. Éste, a su vez, pasa el mensaje a una clase asistente llamada Rules que es la encargada de manipular dichos eventos. De esta forma, la lógica del juego queda centralizada en un solo lugar. Es tarea del programador, crear un descendiente de la clase Rules y asignarlo a la propiedad game_rules del componente PuzzleManager.
Precondiciones: Las instancias de los componentes del paquete deben estar inicializadas.
Acción del Actor Respuesta del Sistema
1. El programador programa la descendiente de la clase Rules y una instancia de la misma la propiedad game_rules del componente
PuzzleManager.
Notifica a esta instancia de los eventos ocurridos con las piezas.