ruffle/web/js-src/ruffle-object.js

49 lines
1.2 KiB
JavaScript
Raw Normal View History

2019-08-22 01:02:43 +00:00
import RufflePlayer from "./ruffle-player.js";
export default class RuffleObject extends RufflePlayer {
constructor(...args) {
return super(...args);
}
connectedCallback() {
super.connectedCallback();
2019-08-22 01:02:43 +00:00
this.params = RuffleObject.params_of(this);
//Kick off the SWF download.
if (this.params.movie) {
super.stream_swf_url(this.params.movie);
2019-08-22 01:02:43 +00:00
}
}
static is_interdictable(elem) {
return elem.type === "application/x-shockwave-flash" || elem.type === "application/futuresplash";
2019-08-22 01:02:43 +00:00
}
static params_of(elem) {
let params = {};
for (let param of elem.children) {
if (param.constructor === HTMLParamElement) {
params[param.name] = param.value;
}
}
return params;
}
static from_native_object_element(elem) {
var ruffle_obj = document.createElement("ruffle-object");
for (let attrib of elem.attributes) {
if (attrib.specified) {
ruffle_obj.setAttribute(attrib.name, attrib.value);
}
}
for (let node of elem.children) {
ruffle_obj.appendChild(node);
}
return ruffle_obj;
}
}