Per gli utenti Linux che hanno questo problema ho creato il seguente script come workaround:
Prima di procedere, è necessario assicurarsi che pepper-flash sia installato per Chrome/Chromium, (flashplugin per Firefox) l'unico modo per controllare (senza usare il workaround sottostante che è) è quello di riprodurre un file flash su internet. (o in Firefox, andare su about:plugins e vedere se ha “Shockwave Flash”)
#!/bin/bash
if [-z $1]; then
swf=$(ls *.swf | tail -1)
else
swf=$@
fi
html=$(echo $swf | sed 's:swf:html:g')
echo '<embed src='$swf 'width="100%" height="100%"></embed>' | sed 's:src=:src=":g' | sed 's:swf:swf":g' > "$html"
#chromium "$html" && sleep 20 && rm "$html"
#google-chrome "$html" && sleep 20 && rm "$html"
#firefox about:config & wmctrl -xa firefox && sleep 0.2 && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && firefox "$html" && firefox about:config && wmctrl -xa firefox && sleep 0.2 && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && sleep 20 && rm "$html"
(in alternativa compatibile con dash)
Per usare lo script, salvarlo come swftohtml.sh (può essere qualsiasi nome, non deve finire in .sh) in qualsiasi posizione si desideri, poi convertirlo in un comando eseguibile o farne un alias in bashrc, o copiarlo in /usr/bin/. Ricordarsi di eseguire chmod +x swftohtml.sh per renderlo eseguibile.
Lo script quando viene eseguito senza argomenti cercherà nella cartella corrente un file swf e farà un corrispondente file html che può essere usato per eseguire questo file swf in un browser. Se ci sono più di 1 file swf nella cartella, il valore predefinito sarà l'ultimo (ad esempio, se si dispone del nome del file1.0.swf e del nome del file2.0.swf, il valore predefinito sarà il nome del file2.0.swf)
In alternativa, per indirizzare un file swf specifico, è possibile inserire il nome del file (o il percorso completo del file) come argomento per lo script e questo verrà utilizzato al suo posto. (ad es. swftohtml.sh nome file 1.0.swf )
Se si desidera automatizzare completamente lo script:
Per aprire automaticamente i file swf nel browser e automatizzare la rimozione del file html risultante dopo che è stato utilizzato, decommentare una delle seguenti righe in fondo allo script (a seconda del browser):
#chromium "$html" && sleep 20 && rm "$html"
#google-chrome "$html" && sleep 20 && rm "$html"
#firefox about:config & wmctrl -xa firefox && sleep 0.2 && xdotool key Return && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && firefox "$html" && firefox about:config && wmctrl -xa firefox && sleep 0.2 && xdotool key Return && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && sleep 20 && rm "$html"
Lo script aprirà ora il file html nel browser non appena sarà stato creato. Se c'è un'istanza esistente del vostro browser in esecuzione, cancellerà il file html in 20 secondi (dandovi il tempo di dire al browser di aprire il file con il suo plugin flash). Se non c'è un'istanza esistente del vostro browser, il file verrà invece cancellato 20 secondi dopo la chiusura del browser.
Con questo set, è possibile configurare i file SWF da aprire con lo script, e il processo è ora completamente automatizzato in modo da poter aprire i file SWF direttamente, senza mai preoccuparsi di creare (o cancellare) i file html a mano, in altre parole, si comporterà come dovrebbe fare ora. (Tenete presente che ci possono essere alcuni casi angolari in cui il file html non viene cancellato, ma quando ciò accade potete tranquillamente ignorarlo.)
Per gli utenti di Firefox:
La versione di Firefox era un po’ più complicata, richiede l'installazione di wmctrl e xdotool. La ragione di questo è che per far giocare a firefox i file swf locali in questo modo è necessario disabilitare plugins.http_https\solo in about:config, lo script lo disabilita automaticamente, apre il file flash, poi lo riattiva, perché questa è un'impostazione che la maggior parte delle persone generalmente vorranno mantenere abilitata. Il browser deve essere aperto prima che il comando venga eseguito. Se si pensa che sia probabile che il browser firefox venga chiuso quando si esegue il comando, sostituire la riga con questa:
firefox about:config & sleep 1 && wmctrl -xa firefox && sleep 0.2 && xdotool key Return && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && firefox "$html" && firefox about:config && wmctrl -xa firefox && sleep 0.2 && xdotool key Return && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && sleep 20 && rm "$html"
Ora il browser avrà 1 secondo di tempo per avviarsi prima di eseguire il resto dello script. (Potrebbe essere necessario regolarlo per i computer più lenti).
La versione Firefox dello script cancellerà sempre il file dopo 20 secondi.
Test di prestazione:
Ho fatto alcuni rudimentali test di prestazione e questi sono i miei risultati:
- Chrome/Chromium Pepper Flash (PPAPI): Fastest
- Proiettore Adobe Flash (NPAPI)(Wine): Fast
- Firefox Flashplugin (NPAPI): Più lento
Per quanto riguarda la stabilità, ci sono casi angolari in cui il PPAPI si imbatterà in bug/errori che NPAPI non ha, ma sono rari.
Le prestazioni tra Pepper Flash e Flash Projector sono state piuttosto piccole (si nota, ma a malapena) mentre le prestazioni del plugin flash di firefox sono state notoriamente più lente del resto per qualche ragione.
Quindi, se giocare con i giochi flash è l'obiettivo, raccomanderei di usare il cromo con flash al pepe installato sopra il resto, in generale. Per altri compiti è improbabile che abbia importanza.