使用 create.js ,但每当quequeSetup()
结束队列设置为未定义时,console.log()
已经证明了这一点。下面是受影响的片段。
var queue;
function init() {
queueSetup();
};
function queueSetup() {
var queue = new createjs.LoadQueue(false);
console.log(queue);
queue.installPlugin(createjs.Sound);
console.log(queue);
queue.addEventListener("complete", queueLoaded);
queue.loadManifest([
{id:"nbckg", src:"images/nbckg.png"},
{id:"newgame", src:"images/newgame.png"}
]);
console.log(queue);
}
function queueLoaded() {
//the following console.log logs undefined
console.log(queue);
compName = "NULLCOMPNAME ";
stage = new createjs.Stage("MyCanvas");
createjs.Ticker.addEventListener("tick", tick);
//LOAD MAINMANU
// loadMainMenu();
initUI();
}
答案 0 :(得分:0)
我不熟悉createjs,但在queueSetup()
中,var queue
创建了一个名为queue
的新变量,该变量作用于该函数。要在函数外部引用queue
变量,请忽略var
。
答案 1 :(得分:0)
正如其他人所提到的,您正试图访问一个不是全局变量的变量。它仅在queueSetup
功能中可用。您可以将它声明为window.queue
并完成它,但不是这样做,最好将其返回并传递给queueLoad
函数。
function init() {
queueSetup();
};
function queueSetup() {
var queue = new createjs.LoadQueue(false);
console.log(queue);
queue.installPlugin(createjs.Sound);
console.log(queue);
queue.addEventListener("complete", function() {
queueLoaded(queue); // pass the queue variable to our queueLoaded function
});
queue.loadManifest([
{id:"nbckg", src:"images/nbckg.png"},
{id:"newgame", src:"images/newgame.png"}
]);
console.log(queue);
return queue;
}
function queueLoaded(queue) { // add the variable as an argument
//the following console.log logs undefined
console.log(queue);
compName = "NULLCOMPNAME ";
stage = new createjs.Stage("MyCanvas");
createjs.Ticker.addEventListener("tick", tick);
//LOAD MAINMANU
// loadMainMenu();
initUI();
}