2019-04-28 06:08:59 +00:00
|
|
|
import { Player } from "../pkg/fluster";
|
2019-04-25 17:52:22 +00:00
|
|
|
|
|
|
|
let fileInput = document.getElementById("file-input");
|
|
|
|
fileInput.addEventListener("change", fileSelected, false);
|
|
|
|
|
2019-04-29 20:24:29 +00:00
|
|
|
let remoteInput = document.getElementById("remote-input");
|
|
|
|
let loadRemoteButton = document.getElementById("load-remote-button");
|
|
|
|
loadRemoteButton.addEventListener("click", loadRemoteSwf, false);
|
|
|
|
|
2019-04-25 17:52:22 +00:00
|
|
|
let player;
|
|
|
|
|
|
|
|
function fileSelected() {
|
|
|
|
let file = fileInput.files[0];
|
|
|
|
if (file) {
|
|
|
|
let fileReader = new FileReader();
|
|
|
|
fileReader.onload = e => {
|
|
|
|
playSwf(fileReader.result);
|
|
|
|
}
|
|
|
|
fileReader.readAsArrayBuffer(file);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-04-27 22:50:33 +00:00
|
|
|
let timestamp = 0;
|
2019-04-29 20:24:29 +00:00
|
|
|
|
|
|
|
function loadRemoteSwf(swfData) {
|
|
|
|
fetch(remoteInput.value)
|
|
|
|
.then(response => {
|
|
|
|
response.arrayBuffer().then(data => playSwf(data))
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2019-04-25 17:52:22 +00:00
|
|
|
function playSwf(swfData) {
|
2019-04-30 11:38:04 +00:00
|
|
|
//let audio = new AudioContext();
|
|
|
|
//audio.decodeAudioData(swfData).then(data => console.log("success"));
|
|
|
|
//return;
|
2019-04-25 17:52:22 +00:00
|
|
|
let canvas = document.getElementById("fluster-canvas");
|
|
|
|
if (swfData && canvas) {
|
2019-04-29 20:24:29 +00:00
|
|
|
console.log(swfData);
|
2019-04-28 06:08:59 +00:00
|
|
|
player = Player.new(canvas, new Uint8Array(swfData));
|
2019-04-27 22:50:33 +00:00
|
|
|
timestamp = performance.now();
|
2019-04-25 17:52:22 +00:00
|
|
|
window.requestAnimationFrame(tickPlayer);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-04-27 22:50:33 +00:00
|
|
|
function tickPlayer(newTimestamp) {
|
|
|
|
let dt = newTimestamp - timestamp;
|
|
|
|
player.tick(dt);
|
|
|
|
timestamp = newTimestamp;
|
2019-04-25 17:52:22 +00:00
|
|
|
window.requestAnimationFrame(tickPlayer);
|
|
|
|
}
|