Flash: volume in Actionscripit 3 con MouseOver

Salve a tutti, ho una richiesta un po paticolare da fare:
Ho cretao un swf che al suo interno carica automaticamente quando la pagina parte, tramite un URL, un filmato.
Per necessità il filmato parte senza audio (proprietà-volume =0).
Mi è stato chiesto che un mouseover sullo stage attivi l'audio, e di conseguenza un mouseout lo disattivi. Il tutto possibilmente con un fade-in, parlo sempre del volume, e senza slider o controlli di nessun genere. Solo mouse over e mouse out!
E' possibile fare questa cosa?

 caramelleamare, N.D.

Ciao e benvenuto/a sul Forum...

Tutto si può fare con Flash io posso risolvere il problema in AS 2.0 tu devi per forza utilizzare as 3.0?


Per fare in modo che il volume si alzi al passaggio sopra lo stage del filmato secondario ci vuole un pulsante invisibile che contrassegni l'area.. (l'ultimo stadio del pulsante 'premuto') nell'esempio seguente io ho lasciato solo la cornice.


guarda quest'esempio
http://digilander.libero.it/max_maxuell/filmato-principale.swf

il pacco lo puoi scaricare alle seguenti coordinate:

http://digilander.libero.it/max_maxuell/volume-fade-in-out.rar

lo script che aumenta e diminuisce il volume l'ho fatto con le mie zampette quindi potrebbero esserci imperfezioni.
Sarebbe stato meglio utilizzare la funzione hitTest e anzicchè il pulsante utilizzare un clip invisibile o meglio con alpha=0

la casella del volume puoi benissimo toglierla l'ho lasciata tanto per vedere il funzionamento.
Inoltre puoi cambiare l'aumento o il decremento del volume modificando il numero vol-3 in vol-1 per ritardare di più
la diminuzione del volume.

Trovi tutto nel file sorgente.
La musica è caricata in entrambi i filmati principale e secondario... è importante che canzone sia nella libreria del principale con l'IDentificatore che prende il nome di 'cucu'

il tutto in as 2.0


 max_400, N.D.

Allora intanto grazie mille per il lavoro che io non avrei mai saputo fare.
Prima di provare ad adattare questo esempio alla mia situazione però vorrei chiederti due cose che stanno alla base: 1)Il resto del lavoro che ho fatto è in AS.3(ho iniziato da pochi mesi e as.2 non lo conosco), è un ostacolo superabile?
2)Questo codice puo funzionare anche se io nella libreria invece di un file audio carico un trailer video(video+audio) che gli faccio prendere tramite un URL(è su youtube) e quindi non presente su alcuna cartella?
Considera che questa situazione non è modificabile in quanto si deve trattare di una struttura in flash fissa che andrà in un sito di cinema. Al caricamento della pagina relativa al film parte anche il suo trailer(in parte nascosto). quindi non potrei mai avere tutti i trailer dei film in cartella, ma ogni volta lo recupera da un indirizzo
(file-importa-importa video "già distribuito su server web...").
Non so se mi sono spiegato bene..

E grazie di nuovo per quello che hai già fatto.

 caramelleamare, N.D.

caramelleamare ha scritto:
  1)Il resto del lavoro che ho fatto è in AS.3(ho iniziato da pochi mesi e as.2 non lo conosco), è un ostacolo superabile?

AS 2.0 non è altro che un altro tipo di linguaggio secondo me più semplice più breve come sintassi.

caramelleamare ha scritto:


2)Questo codice puo funzionare anche se io nella libreria invece di un file audio carico un trailer video(video+audio) che gli faccio prendere tramite un URL(è su youtube) e quindi non presente su alcuna cartella?

un collegamento diretto ai video di youtube io non l'ho mai fatto tra l'altro io uso una vecchia versione di Flash (Mx 7.2)
Io in genere prendo i video da youtube scaricandoli in formato .FLV e dopo utilizzo il componente mediaPlayBack della finestra dei componenti.

Il video ovviamente esterno non in libreria.



 max_400, N.D.

Non ti ho risposto prima perche non avveo sotto mano il progetto.
Allora: i pensavo di fare uan cosa del genere, ma non so se snon completamente fuori strada:

var var_volume:Number = 0

clipFlv.addEventListener(MouseEvent.MOUSE_OVER, buttonOverHandler1);
function buttonOverHandler1(MouseEvent) : void {
var_volume = 1;
}
clipFlv.addEventListener(MouseEvent.MOUSE_OUT, buttonOutHandler1);
function buttonOutHandler1(MouseEvent) : void {
var_volume = 0;
}
clipFlv.addEventListener(Event.ENTER_FRAME, MC_EF1);
function MC_EF1(MouseEvent) : void {
if (var_volume == 1) {
????? ;
}
else if (var_volume == 0) {
????? ;
}
}


Come vedi dentro all'IF ho messo "???" perche in teoria vorrei dirgli: se var_volume==1 allora il volume deve incrementare, altrimenti diminuire.
Ma come lo pesco il volume di un trailer?
Non si tratta di un mp3 caricato sul .FLA, ma di un FLV(trailer di film) caricato in un server esterno e non ho idea di come fare.
Sto sparando cavolate?

Grazie

 caramelleamare, N.D.

Ma come lo pesco il volume di un trailer?
allo stesso modo dell'mp3'

musica = new Sound();
vol=0;
musica.setVolume(vol);

esempio:
http://max400scuola.altervista.org/aaa/volume-video-flv-esterno.html
PS: il file FLV è esterno ed ho usato il componente mediaPlayBack

file da scaricare:
http://max400scuola.altervista.org/aaa/volume-video-flv-est.php



il pulsante sopra il video (lasciando spazio per i controlli)


quando passi sopra al pulsante (creato in un livello superiore sopra il componente) aumenta il volume del filmato

Per il resto non ho altro da aggiungere.
Nel sorgente troverai tutto. Buon lavoro!

by max_400



 max_400, N.D.

Mi sto perdendo.
Intanto questo é sempre AS2 mentre io ho bisgono di as3 perche il resto del codice é in as3 e non sono capace a portarlo in AS2 che non conosco proprio (sono poche settimane che ho iniziato).
Comunque per curiosità h provato a fare un documetno as2 nuovo, solo col filamto ed il pulsante come hai fatto te, ma l'icona relativa al filmato vedo che é diversa.
Al di la del componente mediapalyback che ame non serve perche no ndevo visualizzare nessuna skin.
Ma dove é tuttoi il codice?? io vedo solo queste tre righe:

musica = new Sound();
vol=0;
musica.setVolume(vol);

Abbi pazienza, prima o poi ci capirò qualcosa anche io!
E grazie

 caramelleamare, N.D.

Intanto questo é sempre AS2 mentre io ho bisgono di as3 perche il resto del codice é in as3 e non sono capace a portarlo in AS2 che non conosco proprio (sono poche settimane che ho iniziato).

Io purtroppo ti posso aiutare solo in as 2.0 in caso aspetta qualke giorno in modo che qualkuno possa risponderti.


Al di la del componente mediapalyback che a me non serve perche no ndevo visualizzare nessuna skin.
Ma dove é tuttoi il codice?? io vedo solo queste tre righe:

oltre al componente mediaPlayBack ce n'è un altro senza controlli il mediaDiplay.
Il resto del codice è dentro il pulsante (quella cornice posta sopra il filmato in un livello superiore.

[COLOR=#990000]on (rollOver) {
onEnterFrame=function(){
vol=vol+3;
if(vol>=100){
vol=100;
delete onEnterFrame;
}
musica.setVolume(vol);
}
}
on (rollOut) {
onEnterFrame=function(){
vol=vol-5;
if(vol<1){
vol=0;
delete onEnterFrame;
}
musica.setVolume(vol);
}
}
[/COLOR]

Questo è tutto in bocca al lupo!

 max_400, N.D.

Ce l'ho fatta, con tanti aiuti, ma ce l'ho fatta.
Il tuo AS2 funzionava alla perfezione ma non sapevo come scrivere in AS2 le altre poche righe di codice che già erano nel FLA.
Vuoi che posti il codice AS3, spiegato passaggio per passaggio, di questa funzione?

 caramelleamare, N.D.

Ciao caramelleamare,

mi fa piacere che hai risolto;

certo che puoi postare lo script in as 3.0 in caso possa servire ad altri. Io intanto chiudo qui col mio supporto
anche perchè ogni volta che vedo uno script in as 3.0
mi viene intossicazione, una specie di allergia
ed il medico mi ha ordinato di evitare qualsiasi tipo di contatto con questo pseudo-linguaggio di programmazione. ;-D

Ti auguro buon proseguimento. ;-]

Er Moderator
by Max_400

 max_400, N.D.
001design.it ® è un marchio registrato.
© 2004-2017 Molfese Paolo - P.Iva: 03430820617 - All rights reserved | Tutti i diritti sono riservati.