Comunidad de diseño web y desarrollo en internet online

Agenda de evento. linea de tiempo

Citar            
MensajeEscrito el 12 Sep 2012 01:33 am
hola hola primero que nada soy nuevo aqui y tengo mucho tiempo usando flash sin meterme mucho con la programación pero ha llegado el momento de adentrarme un poco mas asi que necesito resolver el siguiente problema:

necesito crear una especie de agenda tipo "timeline" esta consta de que dependiendo de la hora que indique la parte de la linea de tiempo valla haciendo una animación ( en realidad lo que hace es resaltar la actividad en dicha hora) y al mismo tiempo una barra (blanca) que ira creciendo de izquierda a derecha pasando por cada punto (actividad) del dia. y todo debe ir sincronizado con la hora a tiempo real.

exactamente necesito un código que me permita hacer crecer la barra (blanca) hacia la derecha. y otro código que haga mover los fotogramas dependiendo de la hora también, he realizado un poco mas o menos lo siguiente:



y el codigo que he pensado es el siguiente:

var now:Date = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();

if (hours == 10){
gotoAndPlay("10hora");}

if (hours == 11){
gotoAndPlay("11hora");}

if (hours == 12){
gotoAndPlay("12hora");}

if (hours == 131){
gotoAndPlay("1hora");}

if (hours == 14){
gotoAndPlay("2hora");}

if (hours == 15){
gotoAndPlay("3hora");}

if (hours == 16){
gotoAndPlay("4hora");}

if (hours == 17){
gotoAndPlay("5hora");}

if (hours == 18){
gotoAndPlay("6hora");}

if (hours == 19){
gotoAndPlay("7hora");}

Por helado3d

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Sep 2012 01:40 am
solo me funciona al copilarlo pero si espero que la hora pase para la segunda condición, esto no ocurre y se queda donde se detiene al empezar

Por helado3d

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Sep 2012 02:16 pm
El código que pusiste se ejcuta una sola vez. Deberías:

- Meterlo todo en una función
- Llamarlo desde un Timer cada X tiempo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Sep 2012 06:25 pm
gracias jorge. por tu pronta respuesta me he puesto a estudiar mas y conozco ya la base del timer pero aun no se como enlazar una función general (no se como hacerla aun) y si ya entendí que con el IF me ejecuta una sola vez al momento de abrir. gracias por tu luz he abierto un poco los ojos con respecto a las ideas que tenia, usar otros condicionales pero igual solo se ejecutan una sola vez. estudiando por encima el timer noto que tiene que ver con los mili segundos pero como enlazo eso tambien a la hora realy que a tal hora ejecutar un gotoAndPlay eso es lo que necesito para por lo menos realizar la primera parte.

gracias jorge.

Por helado3d

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Sep 2012 06:35 pm
Sería algo así:

Código ActionScript :

function muestraHora(evt:TimerEvent){
   //todo el codigo que pusiste arriba
}
var tm:Timer = new Timer(1000)
tm.addEventListener(muestraHora, TimerEvent.TIMER)
tm.start();


Esto chequea la hora cada segundo
Hay formas mucho mas optimas de hacerlo, pero mientras no sea overkill, la mejor forma en principio es la que uno entiende

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Sep 2012 07:08 pm
excelente, de momento funciona bien, el hace la comprobación cada 1 segundo. debe ser por el delay del timer que esta en 1000, quiero saber si se puede hacer una operación en ese delay para que solo haga la comprobación cada tanto tiempo.

Por helado3d

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Sep 2012 07:11 pm
Para que lo haga inmediatamente cambia la signatura

Código ActionScript :

function muestraHora(evt:TimerEvent = null){
   //todo el codigo que pusiste arriba
}
muestraHora();
...


Para llamarlo cada 10 segundos en vez de cada segundo

Código ActionScript :

var tm:Timer = new Timer(10000)


Son milisegundos.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Sep 2012 09:00 pm
woa jorge eres muy atento, gracias he estado aun trabajando todo el día y disculpa por ser tan cabernicola, entiendo que son milisegundos, esta bien lo de los segundos pero queria saber si hay una manera de que solo se ejecute una sola vez la condicional del if sin dejar que siga el timer chequeando la condicion. es decir que la animacion (gotoAndPlay) ahorita se repite una y otra vez cada segundo quisiera que esto no sucediera pero al mismo tiempo no deje el timer de estar revisando las condiciones.

cualquier cosa si lo ves muy dificil me avisas y gracias de nuevo.

Por helado3d

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Sep 2012 09:03 pm
Lo que ocurre ahora, si lo tienes por ejemplo a 10 segundos, es que hara 600 veces un gotoAndStop(algunframe), pero como ya esta allí, basicamente no hace nada distinto hasta que no cambia de hora. Por supuesto que es muy ineficiente ... pero funciona, ya que en realidad se escala una barra, no se se debería hacer gotoAndStop

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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