我正在使用Clippy.JS,这是一个有趣的小Javascript库,可以恢复微软的助手。
说我想召唤精灵Merlin:
clippy.load('Merlin', function(agent){
// do anything with the loaded agent
agent.show();
agent.moveTo(100,100);
agent.speak("Arthur, you are the chosen one to slay the dragon");
});
这很有效并且易于实现。当我想要移动Merlin时会出现问题:
$( "#target" ).click(function() {
agent.moveTo(333,333);
});
代理对象未在此范围内初始化,我不知道如何在加载代理对象后检索它。
控制台出现此错误:
Uncaught ReferenceError: agent is not defined
答案 0 :(得分:1)
agent
不是全局变量,仅在代理回调函数中可用。
要解决此问题,您需要在回调函数之外创建一个变量,然后使用它来全局操作代理。
以下情况应该有效。
//define the personal agent outside the callback function
let merlin;
clippy.load('Merlin', function(agent){
merlin = agent;
merlin.show();
merlin.moveTo(100,100);
merlin.speak("Arthur, you are the chosen one to slay the dragon");
});
$( "#target" ).click(function() {
merlin.moveTo(333,333);
});