我正在使用 Kinetics.js 来操作我的画布和 jQuery 来处理用户操作。因此,当我一一使用它们时,所有功能都可以正常工作。但是当我尝试为一个事件组合两个函数时,例如 $('.selections img').click........(见下文)该函数只是设置背景并忽略文本。但是,创建了文本图层,但由于某种原因我看不到它。我试图改变函数调用的顺序,但没有运气。
当我检查控制台时,没有错误或警报,当我使用 console.log 检查我的变量时 - 所有这些都打印到控制台。
这里可能有什么问题?
PS。这里的目标是保存 img 和 t 变量并将它们用于:首先 - 在画布上绘制背景,其次 - 在单独图层上的现有背景上打印文本
img = '';
t = '';
function setCanvas (){
hiddenCanvas = new Kinetic.Stage({
container : 'hiddenCanvasHolder',
width : 2340,
height : 1660
});
}
function setBackground (image){
background = new Kinetic.Layer();
var imageObj = new Image();
imageObj.onload = function (){
var backImg = new Kinetic.Image({
x: 0,
y: 0,
image: imageObj,
width: 2340,
height: 1660
});
background.add(backImg);
hiddenCanvas.add(background);
};
imageObj.src = image;
}
function setText(txt){
textLayer = new Kinetic.Layer ();
var text = new Kinetic.Text({
x: 200,
y: 500,
text: txt,
fontSize: 70,
fontFamily: 'Calibri',
fill: '#555',
align: 'center'
});
textLayer.add(text);
hiddenCanvas.add(textLayer);
}
$(document).ready(function(e) {
setCanvas();
setBackground(img);
setText(t);
/* Handles image selection and background setting for canvas */
$('.selections img').click(function(e) {
img = $(this).attr('alt');
textLayer.destroy();
background.destroy();
setBackground(img);
setText(t);
});
/* Handles text input field and text printing to canvas */
$('#print').click(function(e) {
t = $('#quoteInput').val();
background.destroy();
setBackground(img);
textLayer.destroy();
setText(t);
});
/* Handles quote selection from database instead of input it manually */
});