我需要帮助将swf文件使用ruffle (https://ruffle.rs/) 工具嵌入我的HTML网站。在apache的httpd.conf中添加了"AddType application/wasm .wasm",但是我的本地服务器上无法显示以下代码:
<html><head><script src="ruffle/ruffle.js"></script>
</head>
<body>
<script>
window.RufflePlayer = window.RufflePlayer || {};
window.addEventListener("load", (event) => {
const ruffle = window.RufflePlayer.newest();
const player = ruffle.createPlayer();
const container = document.getElementById("container");
container.appendChild(player);
player.load("mig29.swf");
});
</script>
<script src="ruffle/ruffle.js"></script>
</body>
</html
我也尝试了这段代码,但还是没有成功:
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>WORKAROUND</title>
<script>
window.RufflePlayer = window.RufflePlayer || {};
window.RufflePlayer.config = {
"public_path": "ruffle/",
"polyfills": ["static-content", "plugin-detect", "dynamic-content"]
};
</script>
<script src="ruffle/ruffle.js"></script>
<!-- Start workaround -->
<script>
const swfobject = {};
</script>
<script>
Object.defineProperty(swfobject, "embedSWF", {
value: function() {
var ruffle = window.RufflePlayer.newest();
var player = ruffle.create_player();
var container = document.getElementById(arguments[1]);
container.innerHTML = "";
container.style.width = arguments[2] + "px";
container.style.height = arguments[3] + "px";
player.style.width = container.style.width;
player.style.height = container.style.height;
container.appendChild(player);
player.stream_swf_url(arguments[0]);
},
writable: false,
configurable: false
});
</script>
<!-- End workaround - This code also works if placed before <swfobject.js> -->
<script src="swfobject.js"></script>
</head>
<body>
<div id="file_div">Flash Player not detected!</div>
<script>
swfobject.embedSWF("mig29.swf", "file_div", "550", "400", "8");
</script>
</body>
</html>
我在他们的Discord上问了问题,但迄今为止没有回答。如果有人对ruffle更熟悉,请协助一下。
var swfobject = {ua: {pv: {}}, hasFlashPlayerVersion() { return true }};
- Jakob Lindskog