From baf32f0dd3c2d971575e096966aca2ff6b3c0728 Mon Sep 17 00:00:00 2001 From: zhl Date: Wed, 29 Dec 2021 20:18:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=98=BE=E7=A4=BA=E8=8B=B1?= =?UTF-8?q?=E9=9B=84=E5=87=BA=E7=8E=B0=E5=89=8D=E7=9A=84=E5=85=89=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/main/HomeHero.vue | 56 +++++++++++++++++++++++++++++ src/components/main/HomeSection.vue | 4 ++- src/utils/SpineRender.ts | 4 ++- 3 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 src/components/main/HomeHero.vue diff --git a/src/components/main/HomeHero.vue b/src/components/main/HomeHero.vue new file mode 100644 index 0000000..803d790 --- /dev/null +++ b/src/components/main/HomeHero.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/src/components/main/HomeSection.vue b/src/components/main/HomeSection.vue index 5e2ff91..dd83771 100644 --- a/src/components/main/HomeSection.vue +++ b/src/components/main/HomeSection.vue @@ -12,7 +12,7 @@
- +
@@ -22,10 +22,12 @@ import { Component, Vue } from 'vue-property-decorator' import SpineView from '@/components/main/SpineView.vue' import { ISpineData } from '@/utils/SpineRender' +import HomeHero from '@/components/main/HomeHero.vue' @Component({ name: 'HomeSection', components: { + HomeHero, SpineView } diff --git a/src/utils/SpineRender.ts b/src/utils/SpineRender.ts index 8838ff2..34d1c91 100644 --- a/src/utils/SpineRender.ts +++ b/src/utils/SpineRender.ts @@ -21,6 +21,7 @@ export class SpineRender { private shapes private assetManager private scale = 1.5 + private repeat = true constructor(canvas: HTMLCanvasElement) { const config = { alpha: true } @@ -46,6 +47,7 @@ export class SpineRender { init({ skelName, animName, scale, repeat }: ISpineData) { this.skelName = skelName this.animName = animName + this.repeat = repeat this.scale = scale || this.scale // Create a simple shader, mesh, model-view-projection matrix and SkeletonRenderer. this.mvp.ortho2d(0, 0, this.canvas.width - 1, this.canvas.height - 1) @@ -90,7 +92,7 @@ export class SpineRender { // Create an AnimationState, and set the initial animation in looping mode. const animationStateData = new spine.AnimationStateData(skeleton.data) const animationState = new spine.AnimationState(animationStateData) - animationState.setAnimation(0, initialAnimation, true) + animationState.setAnimation(0, initialAnimation, self.repeat) animationState.addListener({ start: function(track: spine.TrackEntry) { console.log('Animation on track ' + track.trackIndex + ' started')