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
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.
1 comentario
Me funciono muy bien y te agradezco el aporte pero el topo se desliza hacia arriba y abajo también. ¿Cómo lo restrinjo a un movimiento horizontal? - Demian Prado
Me funciono muy bien y te agradezco el aporte pero el topo se desliza hacia arriba y abajo también. ¿Cómo lo restrinjo a un movimiento horizontal? - Demian Prado