Для користувачів Linux, які мають цю проблему, я створив такий сценарій як вирішення:
Перш ніж продовжувати, ви повинні переконатися, що перець-флеш встановлений для Chrome / Chromium, (flashplugin для Firefox), єдиний спосіб перевірити (не використовуючи при цьому вирішення нижче) - це відтворення флеш-файлу в Інтернеті. (або в Firefox, перейдіть до про: плагіни і перевірте, чи є в ньому "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"
(альтернативно сумісний з тире)
Щоб використовувати скрипт, збережіть його як swftohtml.sh (може бути будь-яке ім’я, не повинно закінчуватися .sh) у будь-якому місці, яке ви хочете, а потім перетворити його в команду, яку можна виконати, або зробіть псевдонім для неї в bashrc, або скопіюйте його в / usr / bin /. Не забудьте запустити chmod + x swftohtml.sh, щоб зробити його виконуваним.
Сценарій при запуску без аргументів шукатиме у поточній папці файл SWF та створює відповідний html-файл, який можна використовувати для запуску цього SWF-файлу у браузері. Якщо в папці є більше 1 SWF-файлів, вона буде за замовчуванням останньою (наприклад, якщо у вас є ім'я файлу1.0.swf та filename2.0.swf, воно буде за замовчуванням для filename2.0.swf)
Крім того, щоб націлити певний файл SWF, ви можете ввести ім'я файлу (або повний шлях до файлу) як аргумент для сценарію, і він буде використовувати це замість цього. (наприклад, ім'я файлу swftohtml.sh 1.0.swf )
Якщо ви хочете повністю автоматизувати сценарій:
Щоб автоматично відкривати SWF-файли у вашому браузері та автоматизувати видалення отриманого html-файлу після його використання, скаментуйте один із наступних рядків у нижній частині сценарію (залежно від браузера):
#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"
Тепер сценарій відкриє файл html у вашому браузері, як тільки він буде створений. Якщо є наявний екземпляр вашого браузера, він видалить файл html за 20 секунд (даючи вам достатньо часу, щоб повідомити браузеру відкрити файл за допомогою флеш-плагіна). Якщо у вашому браузері не існує жодного примірника, файл замість цього буде видалений через 20 секунд після закриття браузера.
За допомогою цього набору ви можете налаштувати файли SWF для відкриття за допомогою сценарію, і процес тепер повністю автоматизований, так що ви можете відкривати файли SWF безпосередньо, не турбуючись про створення (або видалення) файлів html вручну, іншими словами, вона буде вести себе так, як слід зараз. (Майте на увазі, що може бути кілька кутових випадків, коли файл HTML не видаляється, але, коли це станеться, ви можете сміливо проігнорувати його.)
Для користувачів Firefox:
Версія Firefox була дещо складнішою, вона потребує встановлення wmctrl та xdotool. Причина цього полягає в тому, що для Firefox , щоб грати локальний SWF файли таким чином , що вам потрібно відключити plugins.http_https_only в про: конфігурації , скрипт автоматично відключає його, відкриває файл флеш - пам'яті, а потім ввімкнути його, тому що це установка найбільш люди, як правило, хочуть залишатися ввімкненими. Перед запуском команди потрібно відкрити браузер. Якщо ви думаєте, що, швидше за все, ваш браузер Firefox буде закритий під час виконання команди, замініть рядок цим:
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"
Тепер він надасть браузеру 1 секунду для запуску перед запуском решти сценарію. (Може знадобитися коригування для повільних комп'ютерів).
Версія сценарію Firefox завжди видалить файл через 20 секунд.
Тестування продуктивності:
Я зробив кілька рудиментарних тестувань продуктивності, і це мої результати:
- Спалах Chrome / Chromium Pepper (PPAPI): найшвидший
- Adobe Flash Projector (NPAPI) (Wine): Швидкий
- Flashplugin Firefox (NPAPI): повільніше
Що стосується стабільності, то є кутові випадки, коли PPAPI зіткнеться з помилками / помилками, яких не має NPAPI, але вони рідкісні.
Продуктивність між Pepper Flash та Flash проектором була досить невеликою (це помітно, але ледь), тоді як продуктивність флеш-програми Firefox чомусь повільніше, ніж у всіх інших.
Таким чином, якщо мета флеш-ігор є метою, я б рекомендував використовувати хром із перцевим спалахом, встановленим на інших, загалом. Для інших завдань це навряд чи матиме значення.