Caricare dati in flash da un dominio esterno

Per motivi di sicurezza da flash non è possibile caricare variabili o files che risiedono su un altro dominio. Questa limitazione è dovuta al "Security Sandbox" che è stato implementato nella versione 6 del FlashPlayer per assicurare un certo livello di sicurezza sia per il nostro filmato che per la macchina dell'utente.In pratica il security sandbox definisce le fonti da cui il filmato falsh può ricevere dati.

Il security sandbox consente di accedere a:

1) tutto ciò che è contenuto nel file .swf

2) files ospitati da servers compresi nello stesso dominio del filmato.

3) Local SharedObjects scritti da filmati flash compresi nello stesso dominio

4 alcune informazioni sulla macchina su cui sta girando il filmato.

5) azione dell'utene rivolte al filmato, eventi di mause e tastiera.

Nella security sandbox non sono compresi files e variabili allocati su altri domini ma usando la funzione readfile di php è possibile raggirare facilmente questa limitazione.

 

Esempio 1 - Caricare file XML da dominio esterno

In questo esempio vogliamo caricare da macromedia.com il "Macromedia XML Resource Feed" , ovvero un file xml sempre aggiornato che fornisce informazioni sugli ultimi tutorials e risorse pubblicati su MM.com.

http://www.macromedia.com/devnet/resources/macromedia_resources.xml

per prima cosa dobbiamo creare il file .php che farà da proxy tra il nostro filmato flash e il file xml. Questo semplice script php, tramite la funzione readfile(), legge il contenuto del file remoto e restituisce i dati in output. Dato che la pagina php risiede sullo stesso dominio del filmato flash questo non si accorgerà di aver ricevuto dati da un dominio esterno.

<?php
$xmlFeed = "http://www.macromedia.com/desdev/resources/macromedia_resources.xml";
readfile($xmlFeed);
?>


in flash invece di passare al metodo load l'url del file xml , passiamo l'url della pagina php

 

myXml = new XML();
myXml.onLoad = function(success)
{
   if(success)
   {
      trace("xml feed:
" +this);
   } else {
      trace("errore");
   }
}

myXml.load("http://percorso/proxy.php");

abbastanza semplice no?
usando questa tecnica potete facilmente caricare da domini esterni , variabili, suoni e immagini :)

Esempio 2 - Caricare immagini da dominio esterno

in questo esempio usiamo la stessa tecnica per caricare immagini.


 

Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Lorenzo
Hai qualche domanda da fare?