testo=Le librerie condivise Quello delle librerie condivise è un concetto abbastanza complesso. Non tanto per la difficoltà di comprenderne il funzionamento, abbastanza intuitivo, ma perchè è necessaria una conoscenza più approfondita di altre tecniche per renderne efficace l'utilizzo, anche a fronte di alcune imprecisioni dal punto di vista realizzativo da parte della Macromedia. Funzionamento Partiamo dal concetto delle istanze di uno stesso simbolo presente nella libreria di un filmato. Riferimento Utilizzando più volte lo stesso simbolo, si ha un risparmio nelle dimensioni del filmato, poichè l'oggetto è definito nella grafica o nel codice una sola volta, e poi se ne registrano, per le diverse istanze, solamente le proprietà. Nelle librerie condivise, il concetto è lo stesso. Solo che la libreria è un filmato a se stante, e nei filmati vengono usati riferimenti agli oggetti presenti in esso. Supponiamo di avere il nostro sito composto da un filmato principale, e da più filmati esterni da caricare sopra il primo a seconda delle sezioni esplorate. In tutti questi filmati ci sono degli oggetti comuni: un pulsante, oppure dei suoni, o un'immagine, o un movieclip. Definendo gli stessi oggetti, ognuno nel proprio filmato, otterremmo dei filmati nel cui peso in bytes è compreso lo stesso oggetto. Ogni volta che dovremo scaricare un filmato, per visualizzarlo dovremo attendere, nel caricamento complessivo, anche quello di oggetti che in via teorica sono già presenti nella cache del browser. Le librerie condivise servono ad evitare questo spreco. In un filmato a parte, esiste solo il movieclip. In tutti gli altri filmati, esiste un riferimento a questo movieclip. Quindi l'oggetto non è presente fisicamente in tutti i filmati, e una volta scaricata la "libreria", facendo riferimento al movieclip contenuto in esso, visualizzerò correttamente tutti gli altri. Solo che questi avranno il peso del movieclip in meno. Esempio pratico: filmato "A", che contiene solamente il movieclip, e che funge da libreria condivisa, filmati "B" e "C" che contengono un riferimento al movieclip presente nel filmato "A". Accedo alla sezione "B" del sito, e scarico il relativo filmato. Quando, nell'esecuzione di quest'ultimo, arrivo al punto in cui è presente il riferimento al movieclip in questione, inizia lo scaricamento del filmato "libreria". Prendendo le informazioni da quest'ultima, nel filmato "B" vedrò il movieclip richiesto. Accedo alla sezione "C" del sito, e scarico il filmato relativo: arrivo al punto in cui è presente il riferimento al movieclip. A questo punto si vede il vantaggio: non ho più bisogno di scaricare il filmato "A", perchè è già presente nella cache. E ho risparmiato tempo e peso. Se il movieclip pesasse appunto 10k, e avessi 10 filmati che lo utilizzano, con una libreria condivisa risparmierei 90k, e il relativo tempo di scaricamento. Definizione Vogliamo creare una libreria condivisa. Innanzi tutto costruiamo all'interno del filmato l'oggetto che andrà utilizzato dai filmati esterni, e convertiamolo in simbolo, in modo che sia presente nella libreria. Non è necessario che l'oggetto sia presente anche sullo stage. Accediamo ad ogni singolo oggetto nella libreria, con il tasto destro. Scegliamo "Concatenamento" (Linkage) nel pannello che si apre, scegliamo "Esporta questo simbolo" (Export this symbol), e nel campo "Identificatore" (Identifier), scriviamo un nome che identificherà l'oggetto. A questo punto possiamo salvare il filmato libreria, ed esportarlo in swf (vedremo dopo perchè). Apriamo il filmato in cui dobbiamo utilizzare l'elemento della libreria condivisa. Andiamo al menu File/Apri come libreria condivisa, e scegliamo il .fla della libreria. Si aprirà un pannello del tutto simile a quello delle librerie comuni di flash, con il fondo grigio. Trasciniamo l'oggetto dalla libreria allo stage del filmato. Salviamo il .fla. Se adesso andiamo nel pannello libreria, e guardiamo le proprietà di concatenamento dell'oggetto, vedremo il pannello fatto così: Quello che leggiamo, è che l'oggetto (in questo caso il logo di Flash5.it) ha appunto come identificatore il nome che gli avevamo dato nel filmato "libreria". La differenza sta nel fatto che si può vedere come il movieclip venga in realtà importato dal filmato libreria.swf. Per questo è necessario esportare la libreria condivisa come swf, perchè va uploadata nel server assiema agli altri filmati:da questa infatti vengono prese le informazioni relative agli oggetti concatenati. Naturalmente vale anche in questo caso il discorso dei percorsi relativi. Secondo l'esempio della figura, il filmato libreria.swf dovrà risiedere nella stessa cartella dei filmati esterni che ne fanno uso. Se invece dobbiamo mettere libreria.swf nella cartella Files, ad esempio, quando i filmati sono già stati creati ed esportati, basterà scrivere nel campo "Importa questo simbolo dall'URL:" (Import this symbol from URL) il percorso della libreria. In questo caso, Files/libreria.swf Quando durante la riproduzione del filmato, si arriverà al punto in cui è necessario l'utilizzo del logo, verrà caricato interamente il filmato libreria.swf Lo stesso procedimento si utilizza per tutti gli oggetti, per i movieclip, i simboli grafici, i suoni, i pulsanti. Leggermente diverso è il procedimento per le Font.