Ciao di nuovo,
allora ho provato un pò tutto:
on exitFrame me
go to the frame
if (sound(1).isBusy()) then
sound(1).play(member("miabase"))
end if
Ma se associo questo script allo Score mi succede che il cursore arriva a questo frame ed inizia a loopare una piccola parte del suono che c'è nel canale 1 ed esce un trtrttrttrtrtrtrtr, bruttissimo....
Ho provato anche a non mettere “on exitFrame me” ma Director non si accorge che nel canale 1 ci sta qualcosa, e mi fa ripartire la base... insomma un macello.
Non è possibile dire a director:
«se nel canale 1 ci sta qualcosa in riproduzione allora non fare nulla?»
Se non c’è nulla in riproduzione allora:
sound(1).play(member("miabase"))
-- impostando che miabase va in loop avrei risolto il problema, perchè ad ogni “on exitframe me” go to the frame
stop dello Score di ognuno dei movie immetterei il codice e quindi non ci sarebbe problema di stop dell’audio, che non verrebbe avviato ogni volta, ma solo quando finisce, il suono sarebbe automaticamente riavviato dallo script.
Grazie ancora dello spazio messomi a disposizione.
Director: funzione isBusy.
La funzione isBusy è proprio quella giusta che devi usare.
Infatti, isBusy controlla se un suono è in riproduzione su uno specificato canale di Director.
Restituisce il valore TRUE se nel canale specificato c'è un suono in fase di riproduzione.
Il seguente script controlla se è in fase di riproduzione un suono sul canale n.1.
Se il canale audio n.1 è occupato, il valore restituito sarà TRUE, ed eseguirà lo stop per fermare il suono.
on exitFrame me
if sound(1).isBusy() then
sound(1).stop()
end if
end
È logico che se inserisci il “go to the frame” per far andare in loop la testina di riproduzione e ad ogni exitFrame, allora l’IF con isBusy dovrà fare tale controllo ad ogni frame, quindi nel tuo caso farà trtrtrtrtr.
Questo perché nel tuo caso inizierà ogni volta, ad ogni nuovo frame, la riproduzione del suono.
Per fare quel che dici tu, basta fermare l’audio presente e far subito dopo ripartire il suono X.
Ma il tuo problema importante è che devi far uscire la testina dal frame della verifica, altrimenti devi usare un altro tipo di script, ad es. un Movie Script (script associato al filmato).
Oky grazie Pablito, ho associato al Movie questo script:
on startMovie
if (sound(1).isBusy()=FALSE) then
sound(1).play(member("spellbound"))
end if
end
Grazie ancora, alla prossima.
Ottimo, nota pure che a volte le parentesi tonde non servono, a differenza dell’ActionScript di Flash.
Ad esempio:
if (sound(1).isBusy()) then
È meglio scriverlo così:
if sound(1).isBusy() then
Per il resto contiamo anche sul tuo aiuto, ciao.
001design.it ® è un marchio registrato.
© 2004-2020 Molfese Paolo - P.Iva: 03430820617 - All rights reserved | Tutti i diritti sono riservati.