Voor Linux gebruikers met dit probleem heb ik het volgende script gemaakt als workaround:
Voordat je verder gaat, moet je ervoor zorgen dat pepper-flash is geïnstalleerd voor Chrome/Chromium, (flashplugin voor Firefox) de enige manier om te controleren (zonder gebruik te maken van de workaround hieronder dat is) is om een flash bestand af te spelen op het internet. (of in Firefox, ga naar about:plugins en kijk of het “Shockwave Flash” heeft)
#!/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"
(alternatief compatibel met dash)
Om het script te gebruiken, sla het op als swftohtml.sh (kan elke naam zijn, hoeft niet te eindigen in .sh) op elke gewenste locatie, dan om het om te zetten in een runnable commando ofwel een alias voor het in bashrc, of kopieer het naar /usr/bin/. Vergeet niet chmod +x swftohtml.sh uit te voeren om het uitvoerbaar te maken.
Het script wanneer het zonder argumenten wordt uitgevoerd, zal in de huidige map zoeken naar een swf-bestand en een bijbehorend html-bestand maken dat kan worden gebruikt om dit swf-bestand in een browser uit te voeren. Als er meer dan 1 swf bestand in de map staat, zal het standaard naar het laatste bestand gaan (bijvoorbeeld als je bestandsnaam1.0.swf en bestandsnaam2.0.swf hebt, zal het standaard naar bestandsnaam2.0.swf gaan)
Als alternatief voor het richten van een specifiek swf bestand, kun je de bestandsnaam (of het volledige pad naar het bestand) als argument voor het script invoeren en zal het dat in plaats daarvan gebruiken. (bijv. swftohtml.sh bestandsnaam 1.0.swf )
Als u het script volledig wilt automatiseren:
Om swf bestanden automatisch te openen in uw browser en de verwijdering van het resulterende html bestand te automatiseren nadat het is gebruikt, moet u één van de volgende regels onderaan het script uncommenteren (afhankelijk van uw 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"
Het script zal nu het html bestand openen in uw browser zodra het is aangemaakt. Als er een bestaande instantie van uw browser draait, zal het het html bestand in 20 seconden verwijderen (dit geeft u ruimschoots de tijd om de browser te vertellen dat het bestand met zijn flash plugin moet worden geopend). Als er geen bestaande instantie van uw browser is, zal het bestand in plaats daarvan worden verwijderd 20 seconden nadat de browser is gesloten.
Met deze set kunt u SWF-bestanden configureren om te openen met het script, en het proces is nu volledig geautomatiseerd, zodat u SWF-bestanden direct kunt openen, zonder u ooit zorgen te maken over het maken (of verwijderen) van de html-bestanden met de hand, met andere woorden, het zal zich gedragen zoals het nu zou moeten. (Houd er rekening mee dat er een paar hoeksituaties kunnen zijn waarin het html-bestand niet wordt verwijderd, wanneer dit gebeurt kunt u het veilig negeren.)
Voor Firefox-gebruikers:
De Firefox-versie was wat lastiger, het vereist wmctrl en xdotool om te worden geïnstalleerd. De reden hiervoor is dat voor firefox om lokale swf bestanden op deze manier af te spelen je plugins.http_https_only in about:config moet uitschakelen, het script schakelt het automatisch uit, opent het flashbestand en schakelt het vervolgens opnieuw in, omdat dit een instelling is die de meeste mensen over het algemeen ingeschakeld zullen willen houden. De browser moet open zijn voordat het commando wordt uitgevoerd. Als je denkt dat het waarschijnlijk is dat je firefox browser gesloten zal zijn wanneer je het commando uitvoert, vervang dan de regel door deze:
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"
Het zal de browser nu 1 seconde geven om te starten voordat de rest van het script wordt uitgevoerd. (Moet misschien aangepast worden voor tragere computers).
De Firefox-versie van het script zal het bestand altijd na 20 seconden verwijderen.
Performance testing:
Ik heb wat rudimentaire performance tests gedaan en dit zijn mijn resultaten:
- Chrome/Chromium Pepper Flash (PPAPI): Snelste
- Adobe Flash Projector (NPAPI)(Wijn): Snelle
- Firefox Flashplugin (NPAPI): Traagste
Wat betreft de stabiliteit, zijn er hoek gevallen waar PPAPI zal lopen in bugs / fouten die NPAPI niet, maar ze zijn zeldzaam.
De prestaties tussen Pepper Flash en Flash Projector was vrij klein (Het is merkbaar, maar nauwelijks), terwijl de prestaties van de firefox flash plugin was opmerkelijk langzamer dan de rest voor een of andere reden.
Dus, als het spelen van flash games is het doel, zou ik aanraden met behulp van chroom met peper flitser geïnstalleerd over de rest, in het algemeen. Voor andere taken is het onwaarschijnlijk dat het er toe doet.