Vue Konvaでスプライトオブジェクト/アニメーションを使用するにはどうすればよいですか?

シーン

konva.jsを使用してVueでスプライトシートアニメーションを作成しようとしています(vue-konvaを利用)。

純粋konva.js、Spriteオブジェクトが作成され、このように-要するに、Imageオブジェクトが最初に作成され、その後、Spriteオブジェクトは、画像オブジェクトのonloadのコールバックで作成されます。

var imageObj = new Image();
imageObj.onload = function() {
  var blob = new Konva.Sprite({
    x: 50,
    y: 50,
    image: imageObj,
    animation: 'idle',
    animations: animations, // object defined earlier
    frameRate: 7,
    frameIndex: 0
  });

  // add the shape to the layer
  layer.add(blob);

  // add the layer to the stage
  stage.add(layer);

  // start sprite animation
  blob.start();
};
imageObj.src = '/assets/blob-sprite.png';

一方、vue-konvaでは、次のよう<template>に、.vueファイルセクションに直接コンポーネントとしてKonvaオブジェクトを作成できます

<template>
  <v-stage :config="configKonva">
    <v-layer>
      <v-circle :config="configCircle"></v-circle>
    </v-layer>
  </v-stage>
</template>

私の質問は次のとおりです。

  1. <v-sprite :config="configSprite"></v-sprite>コンポーネントを作成することは可能ですか?ドキュメントにはこれについての言及はありません。
  2. もしそうなら、どのようにimageしてconfigSpriteオブジェクトに必要な属性を正しく提供する必要がありますか?
  3. v-sprite(開始/停止)のアニメーションをどのように制御できますか?
  4. v-spriteコンポーネントを使用してこれらすべてを実行できない場合、どういうわけか手動でSpriteオブジェクトを作成し、それを必要なものに追加することは可能v-layerですか?

ありがとうございました!

lavrton

スプライトコンポーネントはコンポーネントと非常によく似ていv-imageます。画像のデモを見ることができます:https//konvajs.github.io/docs/vue/Images.html

スプライトを開始/一時停止するには、ネイティブKonvaオブジェクトにアクセスし、アニメーションを手動で制御する必要があります。これは、参照を使用して行うことができます。

<template>
  <v-stage ref="stage" :config="stageSize">
    <v-layer ref="layer">
      <v-sprite
        @click="handleClick"
        ref="sprite"
        :config="{
          image: image,
          animation: 'idle',
          animations: animations,
          frameRate: 7,
          frameIndex: 0,
          animations: {
            idle: [
              2,
              2,
              70,
              119,
              71,
              2,
              74,
              119,
              146,
              2,
              81,
              119,
              226,
              2,
              76,
              119
            ],
            punch: [2, 138, 74, 122, 76, 138, 84, 122, 346, 138, 120, 122]
          }
        }"
      />
    </v-layer>
  </v-stage>
</template>

<script>
const width = window.innerWidth;
const height = window.innerHeight;

export default {
  data() {
    return {
      stageSize: {
        width: width,
        height: height
      },
      image: null
    };
  },
  created() {
    const image = new window.Image();
    image.src = "https://konvajs.github.io/assets/blob-sprite.png";
    image.onload = () => {
      // set image only when it is loaded
      this.image = image;
    };
  },
  methods: {
    handleClick() {
      const node = this.$refs.sprite.getNode();
      if (node.isRunning()) {
        node.stop();
      } else {
        node.start();
      }
    }
  }
};
</script>

オンラインデモ:https//codesandbox.io/s/lxlqzok2m9

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

セレンウェブドライバーを使用してvueオブジェクトの値を取得するにはどうすればよいですか?

分類Dev

Vueを使用して子コンポーネントでオブジェクトプロップを使用するにはどうすればよいですか?

分類Dev

vueコンポーネントからvuexストアにオブジェクトデータを送信するにはどうすればよいですか?

分類Dev

Vuejsのデータオブジェクトの配列にアイテムをプッシュするにはどうすればよいですか?Vueは.push()メソッドを監視していないようです

分類Dev

vue-konvaを使用して画面上のオブジェクトでhide()を呼び出すにはどうすればよいですか?

分類Dev

Vue3とVue-routerを使用して1ページのレイアウトアプリで特定のセクションにスクロールダウンするにはどうすればよいですか?

分類Dev

VUEプロジェクトでインポートされたフォントを使用するにはどうすればよいですか?

分類Dev

vue.config.jsを変更して、ネストされたサブディレクトリにページがある複数ページのVue.jsアプリケーションを作成するにはどうすればよいですか?

分類Dev

Vue.js cliプロジェクトで外部Javascriptライブラリを使用するにはどうすればよいですか?

分類Dev

Vueコンテナ内の1つのオブジェクトのクラスを変更するにはどうすればよいですか?

分類Dev

vue.js 2でオブジェクトオブザーバーをループするにはどうすればよいですか?

分類Dev

vue jsでウィンドウオブジェクトにアクセスするにはどうすればよいですか?

分類Dev

Vue Jsでスタイルオブジェクトにプロップを渡すにはどうすればよいですか

分類Dev

Vueコンポーネントの小道具オブジェクトを外部から更新するにはどうすればよいですか?

分類Dev

vue.jsプロジェクトのmain.jsファイルにjsクラスをインポートし、各コンポーネントにインポートするのではなく、すべてのコンポーネントで使用するにはどうすればよいですか?

分類Dev

Vue.js 3プロジェクト全体で利用できるライブラリを含めるにはどうすればよいですか?

分類Dev

vue js 3アプリケーションでブートストラップ4を使用して外部CSSとSCSを追加するにはどうすればよいですか?

分類Dev

VueプロジェクトでThree.jsモジュールを正しくインポートするにはどうすればよいですか?

分類Dev

Vueで「v-if」ステートメントを使用して「v-for」要素のアニメーションを作成するにはどうすればよいですか?

分類Dev

Vueの<option>ループ内でオブジェクト関係を取得するにはどうすればよいですか?

分類Dev

JSONオブジェクトをマップしてvue.jsのデータオブジェクトのプロパティを設定するメソッドを作成するにはどうすればよいですか?

分類Dev

オブジェクトの配列をVueコンポーネントの空の配列に割り当てるにはどうすればよいですか?

分類Dev

Vue&Laravelでaxiosを使用して画像ファイルとデータオブジェクトをアップロードするにはどうすればよいですか?

分類Dev

TailwindCSSを使用してvue-cli-3プロジェクト用にPurgeCSSを構成するにはどうすればよいですか?(レスポンシブクラスを含む)

分類Dev

vue-highchartsを使用してHighchartsオブジェクト構成をグローバルに設定するにはどうすればよいですか?

分類Dev

ElmでVueのトランジショングループ機能を実装するにはどうすればよいですか?

分類Dev

Vueで、新しいdevBaseUrlオプションを使用するにはどうすればよいですか?

分類Dev

BootswatchテーマをVueプロジェクトに追加するにはどうすればよいですか?

分類Dev

Vue.jsのネストされた配列で正しいオブジェクトを取得するにはどうすればよいですか?

Related 関連記事

  1. 1

    セレンウェブドライバーを使用してvueオブジェクトの値を取得するにはどうすればよいですか?

  2. 2

    Vueを使用して子コンポーネントでオブジェクトプロップを使用するにはどうすればよいですか?

  3. 3

    vueコンポーネントからvuexストアにオブジェクトデータを送信するにはどうすればよいですか?

  4. 4

    Vuejsのデータオブジェクトの配列にアイテムをプッシュするにはどうすればよいですか?Vueは.push()メソッドを監視していないようです

  5. 5

    vue-konvaを使用して画面上のオブジェクトでhide()を呼び出すにはどうすればよいですか?

  6. 6

    Vue3とVue-routerを使用して1ページのレイアウトアプリで特定のセクションにスクロールダウンするにはどうすればよいですか?

  7. 7

    VUEプロジェクトでインポートされたフォントを使用するにはどうすればよいですか?

  8. 8

    vue.config.jsを変更して、ネストされたサブディレクトリにページがある複数ページのVue.jsアプリケーションを作成するにはどうすればよいですか?

  9. 9

    Vue.js cliプロジェクトで外部Javascriptライブラリを使用するにはどうすればよいですか?

  10. 10

    Vueコンテナ内の1つのオブジェクトのクラスを変更するにはどうすればよいですか?

  11. 11

    vue.js 2でオブジェクトオブザーバーをループするにはどうすればよいですか?

  12. 12

    vue jsでウィンドウオブジェクトにアクセスするにはどうすればよいですか?

  13. 13

    Vue Jsでスタイルオブジェクトにプロップを渡すにはどうすればよいですか

  14. 14

    Vueコンポーネントの小道具オブジェクトを外部から更新するにはどうすればよいですか?

  15. 15

    vue.jsプロジェクトのmain.jsファイルにjsクラスをインポートし、各コンポーネントにインポートするのではなく、すべてのコンポーネントで使用するにはどうすればよいですか?

  16. 16

    Vue.js 3プロジェクト全体で利用できるライブラリを含めるにはどうすればよいですか?

  17. 17

    vue js 3アプリケーションでブートストラップ4を使用して外部CSSとSCSを追加するにはどうすればよいですか?

  18. 18

    VueプロジェクトでThree.jsモジュールを正しくインポートするにはどうすればよいですか?

  19. 19

    Vueで「v-if」ステートメントを使用して「v-for」要素のアニメーションを作成するにはどうすればよいですか?

  20. 20

    Vueの<option>ループ内でオブジェクト関係を取得するにはどうすればよいですか?

  21. 21

    JSONオブジェクトをマップしてvue.jsのデータオブジェクトのプロパティを設定するメソッドを作成するにはどうすればよいですか?

  22. 22

    オブジェクトの配列をVueコンポーネントの空の配列に割り当てるにはどうすればよいですか?

  23. 23

    Vue&Laravelでaxiosを使用して画像ファイルとデータオブジェクトをアップロードするにはどうすればよいですか?

  24. 24

    TailwindCSSを使用してvue-cli-3プロジェクト用にPurgeCSSを構成するにはどうすればよいですか?(レスポンシブクラスを含む)

  25. 25

    vue-highchartsを使用してHighchartsオブジェクト構成をグローバルに設定するにはどうすればよいですか?

  26. 26

    ElmでVueのトランジショングループ機能を実装するにはどうすればよいですか?

  27. 27

    Vueで、新しいdevBaseUrlオプションを使用するにはどうすればよいですか?

  28. 28

    BootswatchテーマをVueプロジェクトに追加するにはどうすればよいですか?

  29. 29

    Vue.jsのネストされた配列で正しいオブジェクトを取得するにはどうすればよいですか?

ホットタグ

アーカイブ