【发布时间】:2018-04-14 17:32:44
【问题描述】:
为了好玩和学习,我最近开始编写自己的 html canvas 项目。现在我差不多完成了,我只想将其上传到 Wallpaper Engine,用户可以将其设置为自己的动画壁纸。
为此,我想为用户提供一些壁纸选项的可能性。
我已按照您可以找到here的说明进行操作
现在我有以下问题,选项的变量不会全局更改,只是在其父级内部。见代码:
var scale = 1,
dotsize = 1,
dotgap = 8,
text = 'example',
fontFamily = 'Arial',
fontSize = 300,
radius = 200;
window.wallpaperPropertyListener = {
applyUserProperties: function(properties) {
if (properties.text) {
text = properties.text.value;
alert(text)
}
}
};
alert(text)
从 Wallpaper Engine 获取内容后的第一个警报显示正确的文本(无论用户在文本字段中输入的内容)
但是,最后的警报会显示我上面设置的“示例”字符串。
我尝试了不同的方法,例如使用 window.text 或 var text 等,但无法弄清楚。
【问题讨论】:
-
第二次 alert() 调用发生在侦听器被调用之前,您希望如何显示其他内容?
-
这只是意味着最后一个
alert(text)在wallpaperPropertyListener()中的那个之前被调用。如果applyUserProperties被异步调用,则可能会发生这种情况,例如按计时器。 -
在页面加载时首先触发事件侦听器之外的第二个警报。侦听器中的第二个正在等待指定的事件,并且仅在该事件发生后才执行
标签: javascript variables wallpaper