Dla użytkowników Linuksa mających ten problem stworzyłem następujący sposób obejścia:
Zanim przejdziesz dalej, musisz się upewnić, że Flash-Flash jest zainstalowany dla Chrome / Chromium (Flashplugin dla Firefoxa). Jedynym sposobem na sprawdzenie (bez użycia poniższego obejścia) jest odtworzenie pliku Flash w Internecie. (lub w przeglądarce Firefox przejdź do about: plugins i sprawdź, czy ma „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"
(alternatywnie kompatybilny z myślnikiem)
Aby użyć skryptu, zapisz go jako swftohtml.sh (może to być dowolna nazwa, nie musi kończyć się na .sh) w dowolnym miejscu, a następnie przekonwertuj go na uruchamialne polecenie albo utwórz dla niego alias w bashrc, albo skopiuj go do / usr / bin /. Pamiętaj, aby uruchomić chmod + x swftohtml.sh, aby był wykonywalny.
Skrypt po uruchomieniu bez argumentów wyszuka w bieżącym folderze plik SWF i utworzy odpowiedni plik HTML, którego można użyć do uruchomienia tego pliku SWF w przeglądarce. Jeśli w folderze znajduje się więcej niż 1 plik SWF, domyślnie zostanie ustawiony na ostatni (np. Jeśli masz plik 1.0.0.swf i plik2.0.swf, domyślnie będzie to plik2.0.swf)
Alternatywnie, aby celować w określony plik SWF, możesz wprowadzić nazwę pliku (lub pełną ścieżkę do pliku) jako argument skryptu, który użyje go zamiast tego. (np. swftohtml.sh nazwa pliku 1.0.swf )
Jeśli chcesz w pełni zautomatyzować skrypt:
Aby automatycznie otwierać pliki SWF w przeglądarce i zautomatyzować usuwanie wynikowego pliku HTML po jego użyciu, usuń zaznaczenie jednego z następujących wierszy u dołu skryptu (w zależności od przeglądarki):
#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"
Skrypt otworzy teraz plik HTML w przeglądarce, jak tylko zostanie utworzony. Jeśli istnieje uruchomiona instancja przeglądarki, plik html zostanie usunięty w ciągu 20 sekund (dając ci wystarczająco dużo czasu, aby powiedzieć przeglądarce, aby otworzyła plik za pomocą wtyczki flash). Jeśli nie ma istniejącego wystąpienia przeglądarki, plik zostanie usunięty 20 sekund po zamknięciu przeglądarki.
Za pomocą tego zestawu możesz skonfigurować pliki SWF, aby otwierały się za pomocą skryptu, a proces jest teraz w pełni zautomatyzowany, dzięki czemu możesz otwierać pliki SWF bezpośrednio, bez martwienia się o ręczne tworzenie (lub usuwanie) plików HTML, innymi słowy, będzie się zachowywał tak jak teraz. (Pamiętaj, że może być kilka narożnych przypadków, w których plik html nie jest usuwany, a gdy tak się stanie, możesz go bezpiecznie zignorować).
Dla użytkowników Firefox:
Wersja Firefoksa była nieco trudniejsza, wymaga zainstalowania wmctrl i xdotool. Powodem tego jest to, że dla firefox odgrywać lokalne pliki SWF w ten sposób należy wyłączyć plugins.http_https_only w about: config , skrypt automatycznie wyłącza go, otwiera plik flash, a następnie ponownie włącza go, ponieważ jest to ustawienie najbardziej ludzie zazwyczaj będą chcieli włączyć. Przeglądarka musi być otwarta przed uruchomieniem polecenia. Jeśli uważasz, że jest prawdopodobne, że Twoja przeglądarka Firefox zostanie zamknięta po uruchomieniu polecenia, zamień wiersz na:
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"
Teraz uruchomi przeglądarkę na 1 sekundę przed uruchomieniem reszty skryptu. (Może wymagać dostosowania w przypadku wolniejszych komputerów).
Wersja skryptu Firefox zawsze usuwa plik po 20 sekundach.
Test wydajności:
Zrobiłem podstawowe testy wydajności i oto moje wyniki:
- Flash / Chromium Pepper Flash (PPAPI): najszybszy
- Adobe Flash Projector (NPAPI) (Wine): Szybki
- Firefox Flashplugin (NPAPI): najwolniejszy
Jeśli chodzi o stabilność, istnieją przypadki narożne, w których PPAPI napotka błędy / błędy, których nie robi NPAPI, ale są one rzadkie.
Wydajność między Pepper Flash i Flash Projector była raczej niewielka (jest zauważalna, ale ledwo), podczas gdy wydajność wtyczki flash firefox była zauważalnie wolniejsza niż reszta z jakiegoś powodu.
Tak więc, jeśli celem jest granie w gry flash, zalecałbym używanie chromu z pieprzową lampą błyskową zainstalowaną ogólnie. W przypadku innych zadań jest mało prawdopodobne, aby miało to znaczenie.