Video slide

Estoy intentando hacer una barra de desplazamiento en la visialuzación de un video, y sigo los siguientes pasos:
1. Pongo las linea y la imagen que corre sobre la linea.
2. A la imagen le añado el comportamiento "constrain to a line"
3. E intento añadir el comportamiento "quick time control slider" al video sobre el que quiero controlar, pero al hacer esto me da el siguiente error: "Parameters for 'Quick Time Control Slider'. CANCEL: Sprite must be one of the following member types <void>: Cancel".
¿Alguna idea de lo que esto puede ser? Gracias

1 Respuesta

Respuesta
1
Usa mis comportamientos que son mejores:
Para el topo que se desliza a través de la barra usa este:
Property s
property p_linea_pelicula,poduracion,p_velo,p_s
property p_origen_barra, p_pantalla_pelicula, longitud_barra
on getPropertyDescriptionList
list=[:]
addprop list , #p_linea_pelicula , [#comment:"elige el sprite barra de video",\
#format:#integer,#default:2]
addprop list , #p_pantalla_pelicula , [#comment:"elige el sprite pantalla de video",\
#format:#integer,#default:6]
return list
end getPropertyDescriptionList
on beginsprite me
sprite(p_pantalla_pelicula).member.loop =1
sprite(me.spritenum).moveableSprite=true
sprite(me.spritenum).loc=p_origen_barra
poduracion=sprite(p_pantalla_pelicula).duration
sprite(p_pantalla_pelicula).member.pausedAtStart=true
sprite(p_pantalla_pelicula).movietime=0
sprite(me.spritenum).constraint= p_linea_pelicula
p_origen_barra=sprite(p_linea_pelicula ).loch
longitud_barra=sprite(p_linea_pelicula ).width
p_s=sprite(me.spritenum)
sprite(me.spritenum).loc=sprite(p_linea_pelicula ).loc
end
on mousedown me
s=0
p_velo=sprite(p_pantalla_pelicula).movierate
sprite(p_pantalla_pelicula).movieRate = 0
end
on mouseup me
sprite(p_pantalla_pelicula).movierate=p_velo
s=1
end
on estado me,l
s=l
end
on exitframe me
if s=0 then
posicion_topo=sprite(me.spritenum).locH
topo_relativo=posicion_topo - p_origen_barra
posicion_pelicula=(topo_relativo*float(poduracion))/longitud_barra
sprite(p_pantalla_pelicula).movietime=float(posicion_pelicula)
else if s=1 then
posi=sprite(p_pantalla_pelicula).movietime
pos_barr=(posi*longitud_barra)/poduracion
p= pos_barr+p_origen_barra
sprite(me.spritenum).locH=p
end if
end
Para los botones de play,stop... usa este:
property p_tipo_control, pVideoSprite,ptitulo
on getPropertyDescriptionList me
list = [:]
addProp list, #ptitulo,[#comment:"comportamiento realizado por",#format:#symbol,#range:[#bedelludrica],#default:#bedelludrica]
addProp list, #p_tipo_control, [#comment: "accion de este boton",\
#format: #symbol,¬
#range: [#play, #stop, #pausa, #salto_adelante, #salto_atras,\
#vete_comienzo, #marcha_atras, #adelante_rapido, #atras_rapido, #vete_final],\
#default: #stop]
addProp list, #pVideoSprite, [#comment: "¿cual es el sprite de video?",\
#format: #sprite, #default: 1]
return list
end
on mousedown me
sendsprite(sprite 3,#estado,1)
end
on mouseUp me
case p_tipo_control of
#play:
sprite(pVideoSprite).movieRate = 1
#stop:
sprite(pVideoSprite).movieRate = 0
sprite(pVideoSprite).movieTime = 0
#vete_comienzo:
sprite(pVideoSprite).movieRate = 0
sprite(pVideoSprite).movieTime = 0
#vete_final:
sprite(pVideoSprite).movieRate = 0
sprite(pVideoSprite).movieTime = sprite(pVideoSprite).duration
#marcha_atras:
sprite(pVideoSprite).movieRate = -1
#pausa:
sprite(pVideoSprite).movieRate = 0
#salto_adelante:
sprite(pVideoSprite).movieTime = sprite(pVideoSprite).movieTime + 4*60
#salto_atras:
sprite(pVideoSprite).movieTime = sprite(pVideoSprite).movieTime - 4*60
#adelante_rapido:
sprite(pVideoSprite).movieRate = 3
#atras_rapido:
sprite(pVideoSprite).movieRate = -3
-- #repeticion:
-- sprite(pVideoSprite).member.loop = ¬
-- not sprite(pVideoSprite).member.loop
end case
end
Buena respuesta pero aún tengo unas dudas sobre esto: ¿ como inicializo los valores de property, como son p_linea_pelicula, poduracion, p_velo, p_s, property p_origen_barra, p_pantalla_pelicula, longitud_barra ? ¿Hace falta que ponga el 'constrain to a line'?
Gracias
Sigo probando tu comportamiento y tengo varios problemas.
1. El topo sale en medio de la linea.
2. El video sale inicialmente parado a pesar de haber quitado las referencias:
sprite.(p_pantalla_pelicula).member.pausedAtStart=true
sprite(p_pantalla_pelicula).movietime=0
3. Si muevo inicialmente el topo, resulta que me sale una excepción diciéndome que no puedo dividir entre 0. Pero si lo vuelvo a correr desde ese punto, lo hace bien y según muevo el topo funciona OK.
Gracias por tu tiempo
Sólo debes usar estos dos comportamientos y nada más.
El topo te sale en el media, porque la barra debe tener el punto de registro en la parte izquierda.
Para que comience en play pon el movierate a 1
¿A qué te refieres con que debe tener un punto de registro en la parte izquierda? ¿Cómo puedo solucionar el hecho de que salga en medio y no a la izquierda de la barra ¿Porque además provoca que a veces el topo llegue hasta el final pero la película siga un rato más.
Gracias
La barra tiene que tener el loc en la parte izquierda.
ESto es fácil de hacer: abre la ventana tool palette de la ventana window y construye la linea con la herrienta que tienes aquí para hacer lineas. Dale una altura de 1 pixel y ya lo tienes listo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas