Director: tasto play insensibile.

Di: stek | 26/09/2020 17:02:49
Ciao gente.
Ho un piccolo problema.
Due Sprite, uno rappresenta il simbolo di pausa e uno il simbolo play; ho assegnato a entrambi gli Sprite, script relativi al comportamento tipo mouse enter, mouse leave, mouse down ecc. e sono perfettamente sensibili al cursore e ai click del mouse. In più ho assegnato loro gli script di controllo filmato (pausa e play appunto) ma qui è sorto il problema: quando il filmato è in pausa, il tasto play è insensibile (solo visivamente) al rollover del cursore e al click del mouse, pur facendo ripartire il filmato.
Come è possibile evitare il problema?

Risposte


Come cambiare il cursore al passaggio del mouse sullo Sprite.

Ciao Stek,
se ho capito il tuo problema, devi solo far comparire la manina quando il mouse passa sopra lo Sprite in questione.
Quindi basta associare il seguente codice allo Sprite:
on mouseWithin me
cursor(280)
end
on mouseLeave me
cursor(0)
end
-- cursor(280) corrisponde al cursore: manina che indica in un punto;
-- cursor(0) corrisponde al cursore di default.

Di: Pablito | 26/09/2020 17:03:49


Grazie Pablito, farò tesoro di questa informazione, anche se a nel mio caso la sensibilità del cursore e il feedback grafico del clik sono: al passaggio del cursore il pulsante si illumina, al click del mouse viene premuto. Questo accade durante la riproduzione ma appena il movie viene messo in pausa, questa sensibilità viene inibita. E importa poco se il pulsante "pausa" resta insensibile (durante la pausa appunto), quello che più disturba è il pulsante "play" che in condizione di pausa non fornisce alcun feedback grafico.
È normale?

Di: stek | 26/09/2020 17:03:49


Perché non posti lo script associato ai due pulsanti?
Il codice assegnato ai tuoi pulsanti si riferisce al movie cioè controlla lo scrorrimento della testina oppure controlla un video? Per il primo caso la pausa la applichi con un "go to the frame"?

Di: goku | 26/09/2020 17:03:49


Ciao goku, ti posto volentieri gli script e ti confermo che il controllo dei pulsanti è riferito allo scorrimento della testina. Ho provato al volo "go to the frame" ma non ho risolto.
Questo è lo script associato al pulsante "pause":
on mouseEnter()
sprite(10).member=member(19).member
end mouseEnter me
on mouseLeave()
sprite(10).member=member(17).member
end mouseLeave
on mouseDown()
sprite(10).member=member(18).member
end mouseDown
on mouseUp()
pause
sprite(10).member=member(19).member
end mouseUp
end
Questo è lo script associato al pulsante "play":
on mouseEnter()
sprite(11).member=member(22).member
end mouseEnter
on mouseLeave()
sprite(11).member=member(20).member
cursor(0)
end mouseLeave
on mouseDown()
sprite(11).member=member(21).member
end mouseDown
on mouseUp()
sprite(11).member=member(22).member
go to the frame +1
end mouseUp
on mouseWithin me
cursor(280)
end
end
Grazie

Di: stek | 26/09/2020 17:03:49


Il problema è nel comando pause, che blocca il Movie. Comunque ho rivisto direttamente il tuo codice, sostituiscilo con il seguente:
-- Codice associato allo sprite del pulsante Pausa:
global pausa
on mouseEnter me
sprite(10).membernum=19
end mouseEnter
on mouseLeave me
sprite(10).membernum=17
end mouseLeave
on mouseDown me
sprite(10).membernum=18
end mouseDown
on mouseUp me
sprite(10).membernum=19
pausa = 1
end mouseUp
-- Codice associato allo sprite del pulsante Play:
global pausa
on mouseEnter me
sprite(11).membernum=22
end mouseEnter
on mouseLeave me
sprite(11).membernum=20
cursor(0)
end mouseLeave
on mouseDown me
sprite(11).membernum=21
end mouseDown
on mouseUp me
sprite(11).membernum=22
pausa=0
end mouseUp
on mouseWithin me
cursor(280)
end
Infine aggiungi un behavior sullo Score per tutta la durata della tua animazione con questo codice:
global pausa
on exitFrame me
if pausa = 1 then
go to the frame
end if
end
E in un Cast member vuoto il seguente Movie Script:
global pausa
on startmovie
pausa=0
end
Ricordati di selezionare il Cast member con questo codice e nel Property inspector, nella sezione Script, alla voce type, clicca su "movie".
Spero ti funzioni correttamente.

Di: goku | 26/09/2020 17:03:49


Grazie mille goku. Funziona alla grande!

Di: stek | 26/09/2020 17:03:49


Bene, bene...
Stek, nota che le parentesi su: on mouseEnter()
sono state giustamente tolte. Il codice potrebbe essere ulteriormente limato, ma va bene anche così.

Di: Pablito | 26/09/2020 17:03:49


Ho notato infatti, grazie!
Solo un'altra cosetta per favore: per poter gestire con consapevolezza i vostri preziosi suggerimenti, potreste spiegarmi secondo quale criterio i due script (quello del behavior sullo Score e quello nel Cast member vuoto) risultano essere cruciali nella soluzione del mio problema?
Grazie ancora

Di: stek | 26/09/2020 17:03:49


Semplice, quello sullo Score viene eseguito quando la testina passa o si ferma sullo stesso frame dove si trova il behavior. L'altro invece è un Movie Script e viene eseguito una sola volta e prima di ogni altro script, appena il movie di director viene caricato. Questo infatti mi è servito solo per azzerare la variabile pausa.

Di: goku | 26/09/2020 17:03:49