我正在学习编码,并已使用PaperJS
创建了一个项目。
我有一个更新总得分的功能,并将其显示在页面顶部。
function updateScore(){
text.content = 'Circles Cleared: ' + total;
text.bringToFront();
}
Total是保存当前得分的变量。我正在努力在代码中的其他任何地方使用此代码/将其发布到MongoDB
,因为它似乎不是全局变量?我已在HTML文件中内联paperscript
。
我尝试将总数添加到表单,并通过进行POST
调用来提交表单,但是由于total尚未定义,它一直返回。
完成console.logging
通话后,即使在POST
中也不显示总数。
感谢您的帮助,在此先感谢您。
答案 0 :(得分:2)
您的主要问题是PaperScript
代码在与JavaScript
代码不同的范围内执行。
为了在两者之间共享变量,最简单的方法是直接在Paper.js
中使用JavaScript
(请参见documentation)。
这是您描述的情况的简化工作示例(总数通过画布中的Paper.js
显示)。
// setup paperjs
paper.setup(document.getElementById('canvas'));
// init total variable
var total = 0;
// init total text item
var totalText = new paper.PointText({
point: paper.view.center,
justification: 'center'
});
displayTotal();
// listen to button click
$('button').click(function() {
// increment total variable
total += 100;
// display total
displayTotal();
});
function displayTotal() {
totalText.content = 'total = ' + total;
}
html,
body {
margin: 0;
overflow: hidden;
height: 100%;
}
canvas[resize] {
width: 100%;
height: 100%;
}
button {
position: fixed;
top: 15px;
left: 15px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.11.5/paper-core.min.js"></script>
<canvas id="canvas" resize></canvas>
<button>increment total</button>