import RuffleService from '../../services/ruffle_service/ruffle_service.js' import { library } from '@fortawesome/fontawesome-svg-core' import { faExclamationTriangle, faStop, } from '@fortawesome/free-solid-svg-icons' library.add(faStop, faExclamationTriangle) const Flash = { props: ['src'], data() { return { player: false, // can be true, "hidden", false. hidden = element exists loaded: false, ruffleInstance: null, } }, methods: { openPlayer() { if (this.player) return // prevent double-loading, or re-loading on failure this.player = 'hidden' RuffleService.getRuffle().then((ruffle) => { const player = ruffle.newest().createPlayer() player.config = { letterbox: 'on', } const container = this.$refs.container container.appendChild(player) player.style.width = '100%' player.style.height = '100%' player .load(this.src) .then(() => { this.player = true }) .catch((e) => { console.error('Error loading ruffle', e) this.player = 'error' }) this.ruffleInstance = player this.$emit('playerOpened') }) }, closePlayer() { this.ruffleInstance && this.ruffleInstance.remove() this.player = false this.$emit('playerClosed') }, }, } export default Flash