ruffle/web/js-src/ruffle-embed.js

55 lines
1.4 KiB
JavaScript
Raw Normal View History

2019-08-26 00:11:10 +00:00
import {FLASH_MIMETYPE, FUTURESPLASH_MIMETYPE, RufflePlayer} from "./ruffle-player.js";
2019-08-22 01:02:43 +00:00
export default class RuffleEmbed extends RufflePlayer {
constructor(...args) {
let self = super(...args);
return self;
}
connectedCallback() {
super.connectedCallback();
super.stream_swf_url(this.attributes.src.value);
2019-08-22 01:02:43 +00:00
}
get src() {
return self.attributes.src;
}
set src(srcval) {
self.attributes.src = srcval;
}
static get observedAttributes() {
return ["src"];
}
attributeChangedCallback(name, oldValue, newValue) {
super.attributeChangedCallback(name, oldValue, newValue);
//TODO: We get a double play if we just naively load this twice.
//Check if the element is connected before doing anything!
2019-08-22 01:02:43 +00:00
if (name === "src") {
//this.stream_swf_url(this.attributes.src.value);
2019-08-22 01:02:43 +00:00
}
}
static is_interdictable(elem) {
2019-08-26 00:11:10 +00:00
return elem.type === FLASH_MIMETYPE || elem.type === FUTURESPLASH_MIMETYPE;
2019-08-22 01:02:43 +00:00
}
static from_native_embed_element(elem) {
var ruffle_obj = document.createElement("ruffle-embed");
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;
}
}