Đối với người dùng Linux gặp sự cố này, tôi đã tạo tập lệnh sau như một cách giải quyết:
Trước khi tiếp tục, bạn phải đảm bảo rằng đèn flash tiêu được cài đặt cho Chrome / Chromium, (flashplugin cho Firefox) cách duy nhất để kiểm tra (không sử dụng cách giải quyết bên dưới) là phát tệp flash trên internet. (hoặc trong Firefox, đi tới about: plugin và xem nó có "Shockwave Flash" không)
#!/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"
(tương thích với dấu gạch ngang)
Để sử dụng tập lệnh, hãy lưu nó dưới dạng swftohtml.sh (có thể là bất kỳ tên nào, không phải kết thúc bằng .sh) tại bất kỳ vị trí nào bạn muốn, sau đó chuyển đổi nó thành lệnh có thể chạy hoặc tạo bí danh cho nó trong bashrc, hoặc sao chép nó vào / usr / bin /. Hãy nhớ chạy chmod + x swftohtml.sh để thực thi.
Tập lệnh khi chạy không có đối số sẽ tìm trong thư mục hiện tại cho tệp swf và tạo tệp html tương ứng có thể được sử dụng để chạy tệp swf này trong trình duyệt. Nếu có nhiều hơn 1 tệp swf trong thư mục, nó sẽ mặc định là tệp cuối cùng (ví dụ: nếu bạn có filename1.0.swf và filename2.0.swf, nó sẽ mặc định là filename2.0.swf)
Ngoài ra, để nhắm mục tiêu một tệp swf cụ thể, bạn có thể nhập tên tệp (hoặc đường dẫn đầy đủ đến tệp) làm đối số cho tập lệnh và nó sẽ sử dụng thay thế. (ví dụ: tên tệp swftohtml.sh 1.0.swf )
Nếu bạn muốn tự động hóa hoàn toàn tập lệnh:
Để tự động mở các tệp swf trong trình duyệt của bạn và tự động loại bỏ tệp html kết quả sau khi sử dụng, hãy bỏ qua một trong các dòng sau ở cuối tập lệnh (tùy thuộc vào trình duyệt của bạn):
#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"
Tập lệnh bây giờ sẽ mở tệp html trong trình duyệt của bạn ngay khi nó được tạo. Nếu có một phiên bản hiện có của trình duyệt của bạn đang chạy, nó sẽ xóa tệp html sau 20 giây (cho bạn đủ thời gian để báo cho trình duyệt mở tệp bằng plugin flash). Nếu không có phiên bản hiện tại của trình duyệt của bạn, thay vào đó, tệp sẽ bị xóa 20 giây sau khi đóng trình duyệt.
Với bộ này, bạn có thể định cấu hình tệp SWF để mở bằng tập lệnh và quy trình hiện hoàn toàn tự động để bạn có thể mở tệp SWF trực tiếp mà không phải lo lắng về việc tạo (hoặc xóa) tệp html bằng tay, nói cách khác, nó sẽ hành xử như bây giờ (Hãy nhớ rằng có thể có một vài trường hợp góc mà tệp html không bị xóa, khi điều này xảy ra, bạn có thể bỏ qua nó một cách an toàn.)
Dành cho người dùng Firefox:
Phiên bản Firefox phức tạp hơn một chút, nó yêu cầu cài đặt wmctrl và xdotool. Lý do cho điều này là vì firefox phát các tệp swf cục bộ theo cách này, bạn cần phải tắt plugin.http_https_only trong about: config , tập lệnh tự động vô hiệu hóa nó, mở tệp flash, sau đó bật lại, vì đây là cài đặt nhất mọi người thường sẽ muốn tiếp tục kích hoạt. Trình duyệt cần được mở trước khi lệnh được chạy. Nếu bạn nghĩ rằng có khả năng trình duyệt firefox của bạn sẽ bị đóng khi bạn chạy lệnh, hãy thay thế dòng này bằng:
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"
Bây giờ nó sẽ cho trình duyệt 1 giây để khởi chạy trước khi chạy phần còn lại của tập lệnh. (Có thể cần phải điều chỉnh cho các máy tính chậm hơn).
Phiên bản Firefox của tập lệnh sẽ luôn xóa tệp sau 20 giây.
Kiểm tra năng suất:
Tôi đã thực hiện một số thử nghiệm hiệu năng thô sơ và đây là kết quả của tôi:
- Chrome / Chromium Pepper Flash (PPAPI): Nhanh nhất
- Máy chiếu Adobe Flash (NPAPI) (Rượu): Nhanh
- Firefox Flashplugin (NPAPI): Chậm nhất
Về tính ổn định, có những trường hợp góc mà PPAPI sẽ gặp phải lỗi / lỗi mà NPAPI không mắc phải, nhưng chúng rất hiếm.
Hiệu suất giữa Pepper Flash và Flash Projector khá nhỏ (Đáng chú ý, nhưng hầu như không) trong khi hiệu suất của plugin flash firefox chậm hơn đáng kể so với phần còn lại vì một số lý do.
Do đó, nếu chơi trò chơi flash là mục tiêu, tôi khuyên bạn nên sử dụng crom với đèn flash tiêu được cài đặt trên phần còn lại, nói chung. Đối với các nhiệm vụ khác, điều đó dường như không quan trọng.