我在这次活动中遇到了一些问题。我只是最近才开始HTML5游戏开发,而我正在使用LimeJS。当我将警报设置为在现场或心魔侦听时,以下代码不会触发警报,它仅对Game做出响应。是我的工作顺序做错了还是其他导致事件无法触发的事情?

感谢您的阅读。

//set main namespace
goog.provide('rtstest');


//get requirements
goog.require('lime.Director');
goog.require('lime.Scene');
goog.require('lime.Layer');
goog.require('lime.RoundedRect');

// entrypoint
rtstest.start = function(){
var director = new lime.Director(document.body,1024,768).setDisplayFPS(false),
Game = new lime.Scene(),

menulayer = new lime.Layer().setAnchorPoint([0,0]).setPosition(0,668),
menubg = new     lime.RoundedRect().setSize(1024,200).setPosition(512,668).setFill('assets/menubg.png');


var field = new lime.Sprite().setSize(1024,568).setAnchorPoint([0,0]).setFill('assets/field1.jpg');
var flayer = new lime.Layer().setAnchorPoint([0,0]).setPosition(0,0);

goog.events.listen(flayer,['mousedown'],function(e){

    alert('derp');

});

menulayer.appendChild(menubg);
flayer.appendChild(field);

Game.appendChild(flayer);
Game.appendChild(menulayer);



director.replaceScene(Game);

}

最佳答案

由LimeJS板上的某人修复:

我的代码中的问题是将数组作为参数的setAnchorPoint调用。 setAnchorPoint允许2个数字或goog.math.Vec2对象。图层没有锚点(因为它们没有with和height)。

因此应该是:
  menulayer =新石灰.Layer()。setPosition(0,668),


  var field = new lime.Sprite()。setSize(1024,568).setAnchorPoint(0,0).setFill('assets / field1.jpg');

10-06 07:55