单击图像数组将它们添加到 Konva 舞台

Clicking on array of images to add them to Konva stage

我正在学习 Konvajs 和 HTML5 Canvas 并面临一些问题:

  1. 创建一个由图像数组填充的菜单,并为每个图像分配一个等于其图像名称的 id 值。顺利完成。

  2. 单击任何一个或多个菜单图像将每个图像绘制到 Konva 舞台上以进行旋转等进一步操作。对此有问题:

var pics = ["pic1.png", "pic2.png"]; 
$.each(pics, function( index, value )
{
  id = value.slice(32, -4);
  $('#menu').append("<img src=' " + value + " ' " + id + " " + "/>"); 
});

完整代码位于:https://jsfiddle.net/tommy6s/a44hbsc2/

只是让你的代码更简单:

//// INIT CANVAS
var stage = new Konva.Stage({
    container : "container",
    width : 400,
    height : 300
});
var layer = new Konva.Layer();
stage.add(layer);


/////MENU
var pics = ["http://konvajs.github.io/assets/lion.png", "http://konvajs.github.io/assets/monkey.png"];

var $menu = $('#menu');
$.each(pics, function( index, value ) {
    $("<img/>")    // create image
        .attr('src', value) // set src to image link
        .appendTo($menu)
        .on('click', function() {
            // this here is image object
            var src = this.src;
            // create new Konva.Image from src attribute
            Konva.Image.fromURL(src, function(image) {
                // make it draggable
                image.setAttrs({
                    draggable: true
                });
                // append to layer
                layer.add(image);
                // update layer
                layer.draw();
            })
        });
});

演示:https://jsfiddle.net/6tnb2q2q/(单击图像将其添加到场景中)

var pics = ["pic1.png", "pic2.png"]; 
$.each(pics, function( index, value )
{
  id = value.slice(32, -4);
  $('#menu').append("<img src=' " + value + " ' " + id + " " + "/>"); 
});