motori di ricerca   STUDIO        

 Posizionamento indicizzazione siti flash nei motori di ricerca

CAPPELLO BENETTIN

 Home | Lo Studio | Contatti | Portfolio | Partners | Lavora con noi           Pubblicità | Newsletter | Mappa

   

SERVIZI

SEARCH MARKETING

 
Consulenza
 
Ottimizzazione
 
Posizionamento
 
Keyword Advertising
 
Analisi accessi
 
PageRank
 .
 
WEB MARKETING
 
Web promotion
 
Promozione turismo
 

 

RISORSE INTERNET

ARTICOLI
il marketing in rete

TOP NEI MOTORI toolkit gratuito per il posizionamento sui motori di ricerca

WEB SITE RATING
statistiche e dati sul settore internet

LINK SEGNALATI
link, doc e guide

LIBRI WEB MKT
recensione libri

FAQ                   .

RISORSE  PMI

ARTICOLI E LINK
organizzazione, marketing, logistica

CERCA PMI
Strumenti per fare ricerche su aziende

PMI TOP NEWS
da web e giornali

NEWSLETTER
aggiornamenti sul sito

 

Ottimizzazione dei siti in Flash con Flash Object
Traduzione dell'articolo originale "FlashObject" di Geoff Stearns a cura di www.magnificaweb.it

15/03/06 FlashObject è un piccolo file Javascript da usare per includere nelle vostre pagine del contenuto Macromedia Flash. Lo script può rilevare il plugin Flash in tutti i più diffusi browsers (sia su Mac e PC) ed è disegnato per facilitare al massimo l’inserimento di contenuti Flash. Inoltre, è ottimizzato per i motori di ricerca, degrada bene, può essere usato in documenti validi HTML e XHTML 1.0*, ed è stato programmato avendo in mente la compatibilità futura, in modo da funzionare anche negli anni futuri.

Cosa c’è di nuovo in questa versione?
Per una lista completa delle novità, guardate il FlashObject 1.3 blog post originale (in inglese).

Come funziona
Usare il sorgente FlashObject è facile. Aggiungete il file javascript flashobject.js, poi aggiungete poche righe di Javascript nella vostra pagina per includere il vostro filmato Flash. Qui è riportato un esempio che mostra la quantità minima di codice necessaria per aggiungere un filmato Flash:

<script type="text/javascript" src="flashobject.js"></script>

<div id="flashcontent">
Questo testo è sostituito dal filmato Flash.
</div>

<script type="text/javascript">
var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
fo.write("flashcontent");
</script>

Qui è riportato che cosa fa il codice:

<div id="flashcontent">[...]</div>

Prepara un elemento HTML che conterrà il filmato Flash. Il contenuto presente nell’elemento contenitore (flashcontent nel nostro esempio) sarà rimpiazzato dal contenuto Flash, così che gli utenti con il plugin Flash installato non vedranno mai il contenuto presente in questo elemento. Questa caratteristica ha il vantaggio aggiuntivo di permettere ai motori di ricerca di indicizzare il testo rimpiazzato dal filmato Flash.

var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699");

Crea un nuovo FlashObject e passa i parametri richiesti:

• swf – Il percorso ed il nome del vostro file swf.
• id – L’ID del vostro oggetto o embed tag. L’embed tag avrà questo valore impostato come nome per i file che sfrutteranno l’opzione swliveconnect.
• width – La larghezza del vostro filmato Flash.
• height – L’altezza del vostro filmato Flash.
• version – La versione del player richiesta per riprodurre il vostro filmato Flash. Questa può essere una stringa nel formato 'majorVersion.minorVersion.revision'. Un esempio potrebbe essere: “6.0.65”. Oppure potete semplicemente richiedere la versione maggiore, come “6”.
• background color – Questo è il valore esadecimale del colore dello sfondo del vostro filmato Flash.

Parametri opzionali:

• useExpressInstall – Se desiderate che gli utenti aggiornino il loro player usando l’opzione ExpressInstall, usa ‘true’ per questo valore.
• quality – La qualità con la quale riprodurre il filmato Flash. Il default è “high”.
• xiRedirectUrl –Se desiderate redirezionare gli utenti che completano l’aggiornamento ExpressInstall, potete specificare un URL alternativo in questo parametro.
• redirectUrl – Se desiderate redirezionare gli utenti che non hanno la versione corretta del plugin, usate questo parametro inserendo un URL alternativo.
• detectKey – Questo è l’URL che lo script FlashObject cercherà quando il rilevamento è bypassato. Il default è ‘detectflash’. Esempio: per aggirare il rilevamento del plugin Flash e semplicemente scrivere il filmato Flash nella pagina, potete aggiungere ?detectflash=false all’URL del documento contenente il filmato Flash.

fo.write("flashcontent");

Dice allo script FlashObject di scrivere il contenuto Flash nella pagina (se la versione corretta del plugin è installata nel sistema dell’utente) rimpiazzando il contenuto all’interno dell’elemento contenitore.

I dettagli
FlashObject funziona silenziosamente in background nel vostro documento HTML. Per sviluppare pagine utilizzando FlashObject, dovreste iniziare con il vostro contenuto alternativo (cioè quello non Flash). Fate in modo che le vostre pagine funzionino correttamente senza i filmati Flash. Poi aggiungete il piccolo codice Javascript che sostituisce il contenuto alternativo con i filmati Flash. Questo assicura che il contenuto alternativo sarà indicizzato dai motori di ricerca, e che gli utenti senza il plugin Flash vedranno una pagina HTML funzionante. Se offrire informazioni per un eventuale aggiornamento del player dipende da voi. Se il contenuto alternativo è sufficiente, potrebbe non esserci alcuna ragione di dire ai visitatori che stanno perdendo il contenuto Flash.

FlashObject funziona in tutti i più recenti browsers, compresi, su PC: IE5/5.5/6, Netscape 7/8, Firefox, Mozilla, e Opera. Su Mac: IE5.2, Safari, Firefox, Netscape 6/7, Mozilla, e Opera 7.5+, e dovrebbe continuare a funzionare correttamente anche in futuro.

FlashObject rileva la versione del player Flash in quei browsers dalla v.3 a quella attuale (e oltre) se il browser usa l’archittettura dei plugin di Netscape (questo comprende Firefox, Safari, Opera, Netscape, Mozilla, ecc.) e v.4 fino alla versione attuale (e futura, teoricamente fino alla v.20) su Internet Explorer (plugins basati su Active X).

FlashObject può rilevare le versioni minori e le revisioni del player Flash, semplicemente passando la stringa con il valore della versione che volete. Ad esempio per richiedere la v.6.0 r65 (o 6,0,65,0):
var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "6.0.65", "#336699");

Il rilevamento del plugin da parte di FlashObject può essere aggirato. Se un nuovo browser dovesse essere rilasciato o per qualche ragione il rilevamento del plugin dovesse fallire sul sistema di qualche utente, potete aggiungere un link che disabiliterà il rilevamento del plugin, e scriverà sempre il contenuto Flash nella pagina. Per usare questo ‘bypass’ link, fate un collegamento alla pagina con il vostro contenuto Flash, e includete una variabile URL chiamata ‘detectflash’ ed impostatela a 'false.' Qui è riportato un esempio di come risulterebbe un simile link:

<a href="mypage.html?detectflash=false">Bypass link</a>

Esempi di FlashObject
Gli esempi sopra riportati mostrano le operazioni necessarie per il semplice utilizzo di FlashObject, ma cosa è necessario fare per usare alcuni degli altri parametri che il plugin Flash offre? FlashObject rende veramente facile aggiungere qualsiasi parametro extra di cui abbiate bisogno. Gli esempi sottostanti riportano alcuni dei differenti metodi che potrete utilizzare per includere i vostri contenuti Flash.

Un semplice esempio per aggiungere alcuni parametri extra

<script type="text/javascript">
var fo = new FlashObject("movie.swf", "mymovie", "200", "100%", "7", "#336699");
fo.addParam("quality", "low");
fo.addParam("wmode", "transparent");
fo.addParam("salign", "t");
fo.write("flashcontent");
</script>

Nel sito macromedia.com è riportata la lista completa dei parametri accettati e dei loro possibili valori.

Passare variabili ai vostri filmati usando il parametro “FlashVars”:
Usare FlashVars è il modo più semplice per passare dei dati dalla vostra pagina HTML al vostro filmato Flash, ma potete passare i dati solamente quando la pagina si carica. Normalmente, voi aggiungereste un parametro chiamato FlashVars e poi i valori, passando coppie di stringhe del tipo NomeVariabile/ValoreVariabile, come in questo esempio:

variabile1=valore1&variabile2=valore2&variabile3=valore3 e così via.

FlashObject rende questa operazione più facile permettendo di aggiungere un numero a piacere di variabili in maniera simile a come si aggiungono i parametri aggiuntivi. L’esempio sottostante mostra come passare dei valori al filmato Flash usando questo metodo:

<script type="text/javascript">
var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
fo.addVariable("variabile1", "valore1");
fo.addVariable("variabile2", "valore2");
fo.addVariable("variabile3", "valore3");
fo.write("flashcontent");
</script>

Una volta fatto questo, tutte le variabili passate saranno immediatamente disponibili all’interno del filmato Flash. Potrete accedere ad ogni variabile semplicemente riferendovi alla timeline _root.

Lo script FlashObject è dotato anche di una funzione extra che permette di impostare i valori delle variabili direttamente dall’URL. Un possibile esempio potrebbe essere un URL simile a questo:

http://www.example.com/page.html?variabile1=valore1&variabile2=valore2

Usando la funzione getQueryParamValue() potete facilmente prendere i valori dall’URL e passarli al vostro filmato Flash. Qui è riportato un esempio, considerando che l’URL sia simile a quello riportato precedentemente:

<script type="text/javascript">
var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
fo.addVariable("variabile1", getQueryParamValue("variabile1"));
fo.addVariable("variabile2", getQueryParamValue("variabile2"));
fo.write("flashcontent");
</script>

Inoltre la funzione getQueryParamValue() supporta la lettura di variabili dalla location.hash, usata per collegarsi a timeline più interne di un filmato Flash.

Usare Express Install con FlashObject
FlashObject ha il pieno supporto per la funzionalità Flash Player Express Install. Compreso con lo script FlashObject c’è un file actionscript che funziona con FlashObject per effettuare l’aggiornamento del plugin Flash dal vostro filmato. I vostri visitatori non dovranno più lasciare il vostro sito per aggiornare il loro Flash player, e ad operazione ultimata, saranno riportati nella pagina in cui è iniziato l’aggiornamento. Per utilizzare l’opzione Express Install dovete includere il file expressinstall.as nel vostro file .fla e all’inizio del vostro filmato effettuare un piccolo controllo per vedere se l’utente deve aggiornare il proprio player:

#include "expressinstall.as"

// inizializza l’oggetto ExpressInstall
var ExpressInstall = new ExpressInstall();

// se l’utente deve aggiornare, mostra il pulsante 'start upgrade'
if (ExpressInstall.needsUpdate) {

// questo è facoltativo, potreste anche far partire l’aggiornamento
// automaticamente chiamando ExpressInstall.init() invece delle seguenti linee

// aggiunge il messaggio per l’aggiornamento e lo centra
var upgradeMsg = attachMovie("upgradeMsg_src", "upgradeMsg", 1);
upgradeMsg._x = Stage.width / 2;
upgradeMsg._y = Stage.height / 2;

// aggiunge il pulsante che farà partire l’aggiornamento ExpresInstall
upgradeMsg.upgradeBtn.onRelease = function() {
// il metodo ExpressInstall.init() fa iniziare l’aggiornamento
ExpressInstall.init();
}
// se expressinstall è stato lanciato, ferma la timeline.
stop();
}

E’ importante non mettere alcun contenuto nel primo fotogramma (o ovunque avvenga il controllo ExpressInstall) e ricordare che per questa funzionalità è richiesta la versione 7 del Flash Player (o più recente).

Per vedere un esempio di questo codice, aprite il file source/fo_tester.fla contenuto nel file zippato contenente FlashObject.

Se il vostro filmato Flash è in una finestra popup, o preferite redirezionare l’utente ad una diversa pagina dopo che l’aggiornamento Express Install è completato, potete usare l’attributo xiRedirectUrl.

<script type="text/javascript">
var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "8", "#336699", true);
// deve essere l’URL assoluto alla pagina del vostro sito
fo.setAttribute('xiRedirectUrl', 'http://www.example.com/upgradefinished.html');
fo.write("flashcontent");
</script>

Download
FlashObject è rilasciato sotto la licenza MIT. Questo significa (praticamente) che potete usarlo in qualsiasi situazione (anche in progetti commerciali) senza alcuna restrizione.
Download FlashObject 1.3 – File zippato, include flashobject.js e degli esempi html. cliccate qui.

Perchè è meglio del resto
Nel corso degli anni ci sono stati numerosi metodi per rilevare le versioni dei player Flash e per inserire i filmati Flash nei documenti HTML. Questa sezione riporta i metodi più famosi e ne rileva i possibili problemi.

1) Il metodo standard fornito da Macromedia
Tutti dovrebbero conoscere il metodo di default di Macromedia che utilizza i tag embed. Questo metodo consiste nel nell’uso di un tag Object con un tag Embed al suo interno per evitare problemi di compatibilità. Questo è il metodo più popolare per inserire i propri filmati Flash all’interno di un documento HTML ed è la scelta di default quando pubblicate il vostro filmato dal applicativo Macromedia Flash. Questa è anche la maniera più compatibile per includere un filmato Flash, funzionando nella maggioranza dei browsers. Qui è riportato un esempio del codice usato con questo metodo:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"
width="550" height="400" id="Untitled-1" align="middle">

<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="mymovie.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="mymovie.swf" quality="high" bgcolor="#ffffff" width="550"
height="400" name="mymovie" align="middle" allowScriptAccess="sameDomain"
type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

Sebbene questo sia il modo più diffuso per includere i filmati Flash, ha alcune controindicazioni.

• Non c’è rilevamento del plugin Flash. – Senza rilevamento del plugin, gli utenti potrebbero non vedere, in parte o tutto, il contenuto Flash. Se il plugin non è installato sarà visulùalizzata su Internet Explorer la finestra di dialogo ‘Installazione ActiveX’ – una finestra che molti utenti ora temono a causa dei numerosi virus e spyware – o lo strano ‘pezzo di puzzle’ sui browser basati sul motore di Mozilla (ad esempio Firefox). Nessuno di questi sistemi d’installazione sono semplici da usare, e solitamente non spiegano in maniera accurata cosa sia necessario fare e perché.
• Il codice HTML e XHML non si valida. – Non esiste il tag embed in nessuna versione di HTML e di XHTML. Comunque, siccome molti browsers interagiscono con i tag object in maniera differente, il tag embed è necessario per evitare problemi di compatibilità.

2) Uso del solo tag Object / La tecnica del “Flash satay”
Questo metodo ha raggiunto una certa popolarità dopo essere apparso in un articolo su A List Apart nel Novembre del 2002. Qui sono riportatati due esempi uno per la tecnica che utilizza soltanto il tag Object ed uno per il “Flash satay”:

'Uso del solo tag Object'
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"
width="300" height="120">
<param name="movie" value="http://www.macromedia.com/shockwave/download/triggerpages_mmcom/flash.swf">
<param name="quality" value="high">
<param name="bgcolor" value="#FFFFFF">
<!--[if !IE]> <-->
<object data="http://www.macromedia.com/shockwave/download/triggerpages_mmcom/flash.swf"
width="300" height="120" type="application/x-shockwave-flash">

<param name="quality" value="high">
<param name="bgcolor" value="#FFFFFF">
<param name="pluginurl" value="http://www.macromedia.com/go/getflashplayer">
FAIL (the browser should render some flash content, not this).
</object>
<!--> <![endif]-->

</object>

Flash satay
<object type="application/x-shockwave-flash
data="c.swf?path=movie.swf"
width="400" height="300">
<param name="movie"
value="c.swf?path=movie.swf" />
<img src="noflash.gif"
width="200" height="100" alt="" />
</object>

• Problemi di accessibilità. – Utilizzando la tecnica del Flash Satay, alcuni screen readers (come JAWS) ignoreranno il vostro contenuto Flash.
• Non c’è rilevamento del plugin Flash. – Stesso problema riportato per la tecnica 1. Senza rilevamento del plugin, gli utenti potrebbero non vedere il contenuto della pagina. Quando il player Flash incontra un filmato Flash incluso in una pagina, proverà a riprodurlo qualsiasi sia la versione del player installata. Così se il visitatore ha installato il plugin versione 6 ed incontra un filmato Flash versione 7, il plugin proverà ugualmente a riprodurre il filmato potendo causare degli effetti inaspettati.
• Alcune tecniche “Flash satay” non riproducono il filmato Flash nel player. – In questo caso sarebbe necessario l’utilizzo di un filmato swf contenitore per caricare il vostro filmato. Questa situazione rende poco agevole il passaggio di variabili attraverso parametri FlashVars e rende necessario il mantenimento di un numero doppio di filmati Flash.
• Vecchi versioni di safari ignorano i tag param. – Fino alla versione 2.0 (su Tiger) o 1.3 (su Panther) e probabilmente 1.2.8 (prima di Panther) Safari ignorerebbe il tag param. Questo significa che se proverete ad impostare altre opzioni usando il tag param, come FlashVars o Align o Salign, ecc. Safari non li vedrebbe

3) Rilevamento: La tecnica del 'piccolo filmato Flash nella pagina index'
Questa tecnica consiste nel mettere un piccolo filmato Flash nella pagina iniziale del vostro sito, e far controllare a quest’ultimo la variabile $version nel player Flash e redirezionare l’utente ad una seconda pagina contenente il vero filmato Flash, oppure ad una pagina dove effettuare l’aggiornamento del player.

I problemi di questo metodo sono:
• Non c’è il rilevamento del plugin nelle pagine interne del sito. – Se un utente raggiunge direttamente una pagina interna, il controllo della presenza del plugin Flash non è effettuato.
• Il codice HTML e XHMTL non è valido. – Il tag embed necessario per inserire il filmato Flash nel documento HTML non è valido.
• Condizionerà in maniera negativa il posizionamento nei motori di ricerca. – Con questa tecnica la pagina iniziale del vostro sito sarà semplicemente una pagina vuota. Quando la gente troverà il vostro sito sui motori di ricerca potrebbe vedere soltanto la scritta “Rilevamento del player Flash” o addirittura nessuna descrizione. Questo è veramente uno spreco in termini di visibilità per il vostro sito.

4) Il Macromedia Flash Player Detection Kit
Macromedia ha realizzato un ottimo lavoro con il nuovo detection kit incluso con Flash 8, ma ancora non è perfetto. Utilizza due differenti modi per rilevare il plugin Flash:
1. Il classico "piccolo filmato Flash nella pagina iniziale del sito" - (vedi sopra)
2. Javascript – Sì, esatto. Flash adesso include un rilevatore per il plugin in Javascript. Sfortunatamente, non è semplice da usare, mischiando Javascript, VBscript, e tutto il vostro HTML tutto dentro una ingola pagina. Questa metodo continua ad avere molte delle controindicazioni delle altre tecniche viste e non fa nulla per facilitare la vita degli sviluppatori Flash/HTML. Inoltre anche questa tecnica non si valida come XHTML o HTML (sempre che ci teniate a questo tipo di cose).

5) Utilizzo di Javascript per rilevare il plugin e per inserire i filmati Flash
E’difficile criticare questo metodo, siccome varia da sito a sito. Comunque, la maggior parte dei metodi di rilevamento del plugin fatti in Javascript presentano i seguenti problemi:
• Rilevamento del plugin non affidabile. – Spesso il rilevamento del plugin funziona soltanto con le versioni attuali, ed ha bisogno di essere aggiornato manualmente ogni volta che una nuova versione del plugin è rilasciata.
• Aggiunge più codice alle pagine. – Rendendo più difficile aggiornare o cambiare i contenuti delle vostre pagine. Questo metodo potrebbe rendere più difficile l’aggiunta di ulteriori filmati Flash.
• Una soluzione troppo complicata. – Molti script fatti per includere filmati Flash possono crescere fino a grandi dimensioni o diventare decisamente complicati. FlashObject invece è disegnato per essere semplice e leggero.

FAQ
D.Ho sentito parlare dei problemi che Internet Explorer avrà nel mostrare contenuti ActiveX a causa del brevetto EOLAS. FlashObject funzionerà?
R.La risposta è sì. FlashObject non avrà problemi con l’aggiornamento di Internet Explorer che implementerà la richiesta di attivare con un click i contenuti ActiveX caricati attraverso i tag HTML applet, embed e object. Per approfondire questo argomento clicca qui.
D.Perchè il mio contenuto alternativo compare brevemente sullo schermo prima che il filmato Flash sia caricato? (solo su Win/Internet Explorer)
R.Questo comportamento sembra legato al baco FOUC e non ha a che fare direttamente con FlashObject. Può essere corretto aggiungendo un link ad ogni foglio di stile nella sezione HEAD del vostro documento.
D.Come posso far funzionare FlashObject in Netscape 4.x?
R.Questo commento riporta alcuni esempi che possono essere usati per fan funzionare FlashObject anche su Netscape 4.x..
D.Posso usare FlashObject nel mio Blog?
R.Sì, sono disponibili alcuni plugin per Wordpress e Textpattern.
D.Posso usare FlashObject con Dreamweaver o Golive?
R.Esite un’estensione per Dreamweaver disponibile nella CommunityMX. Al momento non sono disponibili estensioni per Golive. Comunque è facile usare FlashObject anche senza estensioni.
D.Questo articolo è disponibile anche in altre lingue?
R.E' disponibile la versione originale di Geoff Stearns in inglese di questo articolo . Qui invece troverete parte di questa pagina tradotta in francese, qui una traduzione in svedese ed una in finlandese.
D.Chi usa FlashObject?
R.FalshObject è usato in siti come The Library of Congress, windows.com, skype.com, youtube.com, snapple.com e tantissimi altri. E’ incluso con Adobe Photoshop (nella photo-gallery Flash). Anche il noto autore di libri Colin Moock consiglia FlashObject come alternativa al Macromedia Detection kit.
Continuate ad avere problemi? Provate a leggere nei precedenti post (in inglese) su FlashObject [1, 2, 3] (specialmente i commenti), dove gran parte delle domande più frequenti sono state risposte.

Ringraziamenti
L'autore Geoff Stearns ringrazia Toby Boudreaux per i consigli e l'aiuto profuso nel rendere FlashObject migliore.

 

[Home] [Lo Studio] [Contatti] [Portfolio] [Newsletter] [Mappa] - [Pubblicità]
STUDIO CAPPELLO BENETTIN -
P.zza M. Borgato Soti 2, 35020 Saonara (PD), Tel. 049.8791531
Sedi partners: Padova, Milano, Bergamo, Firenze, Roma, Vicenza, Napoli
Posizionamento indicizzazione siti flash nei motori di ricerca flash object posizionare siti flash