Newsgroup: it.comp.lang.javascript
Titolo: Javascript a Flash

Ciao a tutti,
da un linkaggio a Flashzone ho scoperto quasta simpatica possibilità che
esiste per far comunicare Javascript e Flash, purtoppo viste le mie scarse
abilità con javascript, non mi è tutto ben chiaro, e vi sarei grato se
qualcuno riuscisse a spiegare come funziona questo codice.
Grazie
Maurizio Benzi
<HTML>
<HEAD>
<TITLE>Colin Clock ver2.</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<!-- initial fscommand-->
<SCRIPT LANGUAGE="JavaScript">
<!-- Devo dire che la parte che capisco meno e' questa iniziale:
// handle for the special case where we need different code for IE and NS
var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
// Handle all FSCommand messages from Shockwave Flash movie
function clock2_DoFSCommand(cmd, args) {
 // IE and Navigator have slightly different document object models
 // IE treats objects as members of "id" while in Navigator,
 // embeded objects are members of "window.document.embeds[0]"
 var clock = InternetExplorer ? clock2 : document.embeds["clock2"]
 var OD = new Date();
 function getmin() {
  clock.TGotoFrame("_level0/min", OD.getMinutes());
 }
 function gethrs() {
  clock.TGotoFrame("_level0/hrs", OD.getHours());
 }
 function getdate() {
  clock.TGotoFrame("_level0/date", OD.getDate()-1);
 }
 function getmon() {
  clock.TGotoFrame("_level0/month", OD.getMonth());
 }
 function getwkd() {
  clock.TGotoFrame("_level0/weekday", OD.getDay());
 }
 function getsec() {
  clock.TGotoFrame("_level0/sec", OD.getSeconds());
 }
 // initial clock
 if ( cmd=="initclock" ) {
  getmin();
  gethrs();
  getdate();
  getmon();
  getwkd();
  getsec();
 }
}
// end hide-->
</SCRIPT>
<SCRIPT LANGUAGE="VBScript">
<!--Questo serve a interfacciare gli Fs command  anche per IE
// handle swf sent VBScript events to IE with AXcontrol
Sub clock2_FSCommand(ByVal cmd, ByVal args)
 call clock2_DoFSCommand(cmd, args)
end sub
// end hide-->
</SCRIPT>
<!--end initial fscommand-->
<BODY bgcolor=#666666>
<DIV align="center">
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="
http://active.macromedia.com/flash3/cabs/swflash.cab#version=3,0,0
,0"
 ID=clock2 NAME=clock2 WIDTH=400 HEIGHT=400 border="0" vspace="0"
hspace="0">
  <PARAM NAME="movie" VALUE="clock2.swf">
  <PARAM NAME="quality" VALUE="high">
  <PARAM NAME="bgcolor" VALUE="#000000">
  <PARAM NAME="salign" VALUE="TR">
 <EMBED NAME="clock2" SRC="clock2.swf" WIDTH=400 HEIGHT=400
PLUGINSPAGE="
http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_
Version=ShockwaveFlash"
 SWLIVECONNECT="true" TYPE="application/x-shockwave-flash"
 QUALITY="high" BGCOLOR="#000000" SALIGN="TR" border="0" vspace="0"
hspace="0">
 </EMBED>
</OBJECT>
</DIV>
</BODY>
</HTML>

Ciao..
//determina se il browser è internet ..
var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
// Handle all FSCommand messages from Shockwave Flash movie
// questo è interessante, flash passa dei comandi a questa
// funzione ... non conosco flash per dirti come ..
// e si fa ritornare di nuovo delle variabili
function clock2_DoFSCommand(cmd, args) {
// assegna alla variabile clock l'oggetto che viene
// puntato con sintassi diverse fra IE ed N con IE
var clock = InternetExplorer ? clock2 : document.embeds["clock2"]
//variabile data a cui viene assegnata la Data Odierna.
var OD = new Date();
//funzioni legate alla variabili data OD che restituiscono
// minuti, ore, data-1,mese,giorno,secondi
// che agiscono sulla funzione dell'oggetto flash TGotoFrame
// evidentemente passano il valore time a flash
// per scrivere la data e se ho ben capito il funzionamento
// è un orologio flash javascript dinamico, cioè si aggiorna
// con il cambiare dei secondi ..
function getmin()
...........................
--
Bye
Ro<*¿*>berto

Ciao una Info per voi Flashisti!! ;-)
Ho trovato tutte le proprietà nascoste
del plugin, oltre a quelle dello script che
ci hai mostrato ..
ce ne sono 36 principali !!
alcune
ritornano valori come -la percentuale di
caricamento
del file.swf, -la determinazione se il movie è in
Play
oppure no, -il numero di frame del movie ecc....
altre determino azioni come -la stampa
nell'oggetto
flash della data (il tuo script) , -il caricamento
di un altro
file.swf, -l'azione o lo stop in un qualunque
frame,
-lo zoom e il ritorno alle dimensioni normali..
 .. e così via, naturalmente tutte funzionanti sia
con
IExplorer che con Netscape e gestibili da
JavaScript..
Ho passato tutto a Massimo Foti e come è successo
per le proprietà di IE, le renderà alla comunità
di Flash
sicuramente meglio di quanto non possa fare io..


Ecco basta ! Dopo questa tiro via le foto di Zidane e della Colombari che ho
nella mia stanzetta e ci metto la tua !!!!!!!!!!!!!
Se le proprietą che hai trovato, fanno quello che penso io hai aperto una
nuova epoca per i Flashisti !!!
Sei troppo il migliore
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;-)))))))))))))))

Ciao Mauri,
speravo di corromperti come giudice del contest..
;-)
ho trovato (ora!)  in:
http://www.macromedia.com/support/flash/ts/documen
ts/tn4160.html
http://www-asia.macromedia.com/support/flash/ts/do
cuments/activex_script.htm
molte delle proprietà di cui parlavo, ma non
tutte,
alcune di quelle che non ho visto sembrano
interessanti,
in quanto ne contengono altre..
appena trovo un poco di tempo mi ci dedico!
ti è andata bene , puoi continuare a tenere la
colombari
come foto in camera!
:-))


Per vostra informazione, i comandi vengono passati dal Flash al Javascript
tramite la funzione:
FS Command (comando, valore)
Ad esempio, in questo caso:
FS Command ("initclock", True)
relativo a:
         // initial clock
         if ( cmd=="initclock" ) {
          getmin();
          gethrs();
          getdate();
          getmon();
          getwkd();
          getsec();
         }
e dal JS al Flash tramite:
        var OD = new Date();
         function getmin() {
          clock.TGotoFrame("_level0/min", OD.getMinutes());
         }
che in sostanza è un Tell Target che indica al Movie Clip "min" (presente
nella timeline principale di Flash) di andare al frame n° (valore riportato
dal JS), dove "min" contiene per ogni singolo Keyframe il numero
corrispondente (il Keyframe 1 riporterà la stringa "01", il Keyframe 2 la
stringa "02", ecc...).
Ciao a tutti
-Cyber-

...


Grazie a te Massimo per avermi dato
la possibilità di conoscere flash oltre
al vederlo in qualche lavoro,
.. ritengo ci siano anche altri metodi
interessanti,  inseriti dentro alcune delle
funzioni che ti ho mandato, se ti fa piacere,
appena ho esempi più significativi ed ho capito
il funzionamento te li manderò!
Ciao
alla proxy.


...


 il funzionamento te li manderò!
Beh guarda che ci siamo anche noi ... ed in particolare su
it.comp.appl.macromedia non penso dispiaccia sapere di queste tue ultime
scoperte !!!
Ciao
Maurizio
Ps: stai tranqui che lascio passare i tuoi msg, anzi ti "trusto"
Pss: beh in effetti la Colombari la lascio però Zidane ...

Non ti ho ancora ringraziato per avermi "trustato" tempo fà...
Lo faccio ora per la fiducia che mi hai concesso a suo tempo.
Grazie,
-Cyber-

Grazie Maurizio!
mi ero ripromesso di non partecipare in
ng. moderati, ma con il tuo potrei fare
un'eccezione.
...ora sto sistemando tutto in un unico file con
i vari metodi e funzioni:
-quelle del pluginFlash e quindi disponibili per tutti,
-quelle solo per IE gestibili da JS
-quelle per Netscape gestibili da JS,
-quelle gestibili da Java ...
è probabile si riesca a trovare qualcosa
anche con VbScript o altro (ma a questi
non mi ci dedico!).....
..alla fine mando tutto sia Massimo che a te..
poi vedi tu se e come renderle disponibili
all'interno del tuo ng.
ciao


 all'interno del tuo ng.
Ho già la bava alla bocca  (he, he, he !!!)
Bye
Maurizio

Premetto che sono molto restio a dare i trust, solo pochi se lo meritano, ma
se ce uno che davvero se lo è guadagnato sul campo quello sei tu:
- msg off-topic : 0
- risposte a domande di ogni genere :  {tendente a + infinito}
- disponibilità : altissima
-richieste di aiuto : 0
- msg di spam : 0
Ciao
Maurizio Benzi

 wrote in message
qAzD3.11447$Iq6....@typhoon.libero.it...


> spero di essermi almeno meritato un caffeuccio
per quando vengo a Milano...
anche corretto ! ;-)
..Zuper Arrivederci Cyber
un grazie di aver partecipato al contest
ed un in bocca al lupo per il tuo lavoro
e la tua vita!
alla proxy..
--
