Esta web:
http://www3.sympatico.ca/spore/wip/SnapShotz.htmlAhí tienes una aplicación creada con shockwave que te puede dar una idea de cómo lo puedes hacer.
No se cómo lo tienes ahora ni cómo lo quieres hacer, pero la idea no parece muy complicada. Tienes que ajustar la velocidad en director, a unos 25 o 30 fps, suele estar configurado así, pero abre el panel de control para comprobarlo.
Puedes crear un menú, y todos los elementos de la interfaz que quieras. Para navegar entre las distintas pantallas que formen tu aplicación tienes que poner botones o imágenes con el siguiente código:
On mouseUp me
go to frame X
end
Donde X representa el número de frame al que tiene que saltar cuando se le pulse.
Respecto a las imágenes puedes colocar dos ligeramente distintas, y en las zonas donde estén las diferencias puedes colocar figuras ovaladas (o de la forma que quieras) y que sean transparentes. Desde el panel de propiedades le pongas que sean transparentes. También tienes que crear varias figuras que se pongan visibles cuando el usuario adivine una diferencia. Las creas y colocas en el escenario, luego las ocultas con un script colocado en el primer frame donde se muestren las figuras.
Ahora vamos con la programación:
- Supongo que las imágenes comienzan a mostrarse en el frame 20, pues en el frame 20 del canal de script (el que está situado justo encima de la barra de tiempo) pones el siguiente script:
On enterFrame
-- Ocultar figuras que indiquen que no se ha adivinado la diferencia
end enterFrame
Ese script lo que hace es crear una lista de las diferencias y se le indica que ninguna está adivinada todavía igualándolo a cero.
- En cada figura colocada sobre las imágenes tienes que colocar un script que indique que esa diferencia ha sido adivinada:
Global numAdivinadas
Property acertada
On getPropertyDescriptionList
set description = [:]
addprop description, #acertada, [#comment: "Adivinada? ", format: #Boolean , default: FALSE]
return description
end
on mouseUp me
if (not acertada) then
acertada = true
-- Mostrar figura o lo que sea indicando que está adivinada
-- lo puedes hacer con: sprite(numeroDeSpriteConFigura). visible = true
-- esos sprites con la figura debes haberlos puesto ocultos
numAdivinadas = numAdivinadas + 1
if (numAdivinadas >= 8) then
alert( "Ya has encontrado todas las diferencias" )
go to frame 1 -- para comenzar de nuevo si quiere que vaya al principio de la aplicación
end if
end if
end
on getBehaviorDescription
return "Numero de cada diferencia"
end
No he tenido tiempo para probarlo. Completa ese código y pruébalo. Supongo que no tiene que ser muy diferente de lo que te he puesto. Si necesitas algo más, o no entiendes cualquier cosa que te he puesto, me lo dices.