Android createjs-stage.mouseX
我注意到createjs最新版本(0.8.0和0.8.1)有bug。 如果您在画布外(stage)单击几次,然后尝试在其停止点内单击,则会显示您正确的stage.mouseX&mouseY。它总是显示“旧”的价值观 这个bug只在android上出现 (这里是bug)。在舞台外单击几次(灰色),然后单击舞台(黄色)。什么也没发生 (无错误,使用0.7.1) 有什么想法吗?有什么建议吗 我的代码:Android createjs-stage.mouseX,android,html,easeljs,createjs,Android,Html,Easeljs,Createjs,我注意到createjs最新版本(0.8.0和0.8.1)有bug。 如果您在画布外(stage)单击几次,然后尝试在其停止点内单击,则会显示您正确的stage.mouseX&mouseY。它总是显示“旧”的价值观 这个bug只在android上出现 (这里是bug)。在舞台外单击几次(灰色),然后单击舞台(黄色)。什么也没发生 (无错误,使用0.7.1) 有什么想法吗?有什么建议吗 我的代码: var stage; var canvas; var $width = 500; var $he
var stage;
var canvas;
var $width = 500;
var $height = 900;
var box;
window.onload = function()
{
//fixCocoonEaselJSStageTouch();
canvas = document.getElementById('canvas');
ctx = canvas.getContext('2d');
ctx.imageSmoothingEnabled = ctx.mozImageSmoothingEnabled = true;
stage = new createjs.Stage(canvas);
createjs.Touch.enable(stage);
log("easejs version: " + createjs.EaselJS.version);
stage.snapToPixelsEnabled = true;
stage.enableMouseOver(0);
//stage.mouseEnabled = false;
stage.mouseMoveOutside = true;
//createjs.Touch.enable(stage);
createjs.Ticker.setFPS(30);
createjs.Ticker.addEventListener("tick", update);
//createjs.Ticker.timingMode = createjs.Ticker.useFrames;
window.addEventListener('resize', resize, false);
resize();
var s = new createjs.Shape();
s.graphics.beginFill("#FFFF00").drawRect(0, 0, 630, 960);
stage.addChild(s);
box = new createjs.Container;
var s = new createjs.Shape();
s.graphics.beginFill("#FF0000").drawRect(0, 0, 50, 50);
box.addChild(s);
stage.addChild(box);
stage.addEventListener("mousedown",function(){
log(stage.mouseX)
})
};
function update(e) {
stage.update(e);
box.x = stage.mouseX;
box.y = stage.mouseY;
};
function resize() {
var gameArea = document.getElementById('gameArea');
var widthToHeight = $width / $height;
var newWidth = window.innerWidth;
var newHeight = window.innerHeight;
var newWidthToHeight = newWidth / newHeight;
if (newWidthToHeight > widthToHeight) {
// window width is too wide relative to desired game width
newWidth = newHeight * widthToHeight;
gameArea.style.height = (newHeight) + 'px';
gameArea.style.width = newWidth + 'px';
} else { // window height is too high relative to desired game height
newHeight = newWidth / widthToHeight;
gameArea.style.width = newWidth + 'px';
gameArea.style.height = newHeight + 'px';
}
gameArea.style.marginTop = (-newHeight / 2) + 'px';
gameArea.style.marginLeft = (-newWidth / 2) + 'px';
}
function log(o){
console.log(o);
};
我找到了解决方案:我们可以使用event.stageX而不是stage.mouseX。