Files
dvcp_v2_webapp/ui/dv/AiSprite.vue
2024-04-12 10:22:47 +08:00

54 lines
1.2 KiB
Vue

<template>
<section class="AiSprite" :ref="ref"/>
</template>
<script>
export default {
name: "AiSprite",
props: {
width: {default: 400},
height: {default: 300},
is3D: Boolean
},
data() {
return {
ref: ""
}
},
methods: {
init(count = 0) {
const container = this.$refs[this.ref]
if (container) {
let {width, height} = this.$props
const scene = new spritejs.Scene({container, width, height, ...this.$attrs}),
layer = scene.layer()
/**
* layer 图层
* lib spritejs的依赖库
*/
this.$emit("init", {layer, lib: spritejs})
} else if (count == 20) {
console.log(this.$refs)
} else setTimeout(() => this.init(++count), 500)
}
},
created() {
this.ref = "AiSprite_" + new Date().getTime()
},
mounted() {
this.$injectLib("https://cdn.cunwuyun.cn/spritejs/spritejs.min.js", () => {
if (this.is3D) {
this.$injectLib("https://cdn.cunwuyun.cn/spritejs/sprite-extend-3d.js", () => {
this.init()
})
} else this.init()
})
}
}
</script>
<style lang="scss" scoped>
.AiSprite {
}
</style>