PaperJS变量,如何将它们存储在MongoDB中?

时间:2018-06-28 07:23:45

标签: javascript mongodb paperjs

我正在学习编码,并已使用PaperJS创建了一个项目。

我有一个更新总得分的功能,并将其显示在页面顶部。

function updateScore(){
  text.content = 'Circles Cleared: ' + total;
  text.bringToFront();
}

Total是保存当前得分的变量。我正在努力在代码中的其他任何地方使用此代码/将其发布到MongoDB,因为它似乎不是全局变量?我已在HTML文件中内联paperscript

我尝试将总数添加到表单,并通过进行POST调用来提交表单,但是由于total尚未定义,它一直返回。

完成console.logging通话后,即使在POST中也不显示总数。

感谢您的帮助,在此先感谢您。

1 个答案:

答案 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>