javascript - 如何在画架js中循环mousedown上的 Action

标签 javascript easeljs createjs

我正在easeljs 中创建一个基本文本窗口。文本窗口具有向上和向下滚动箭头,可以滚动文本。我只需监听向上或向下按钮的单击,然后在单击时移动文本框的 y 坐标即可完成此操作。

我遇到的问题是每次点击它只移动一次。如果我有很多文本要滚动,我就必须点击很多次。我想要的是能够单击并按住按钮并让监听器在鼠标按下时重复该操作?

这是我附加到向下按钮的简化代码:

btn_down.on("mousedown", function(evt) {
    content.y -= 20;                
    game.stage.update();
});

我尝试过鼠标按下并单击,但它似乎仍然只触发一次。

最佳答案

mousedown 事件触发一次(当您按下鼠标按钮时)。如果您想在鼠标按下时循环事件,请在按下鼠标时设置一个时间间隔(并在释放鼠标时清除它),或者切换一个在滴答期间导致更新的属性。

http://jsfiddle.net/lannymcnie/t7uz2v6m/

shape.on("mousedown", handlePress);
shape.on("pressup", handleRelease); 

var pressed = false;
function handlePress(event) { pressed = true; }
function handleRelease(event) { pressed = false; }

function tick(event) {
    if (pressed) { shape2.x += 1; }
    stage.update(event);
}

请注意,我使用“pressup”事件而不是相当于 mouseup 的事件(单击),因为如果您展开并释放,“pressup”事件仍然会触发。

干杯。

关于javascript - 如何在画架js中循环mousedown上的 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32610417/

相关文章:

javascript - easeljs 旋转容器离开屏幕

html - 如何使用createJS获取位图的宽度?

javascript - 使用 canvas 和 createjs/easeljs 查看区域

javascript - 从 Selenium 运行 javascript 时出现 "argument is not defined"错误

javascript - Knockout - 根据 observableArray 检查复选框

javascript - 重绘EaselJS圆段而不放慢速度

javascript - 如何将变量传递给嵌套函数?

Javascript - easelJS - 如何删除AllListeners

javascript - `npm run jshint` 结果为 `missing script: jshint`

javascript - 从 Coder Projects 制作音乐盒元素,盒子似乎没有注册 mousedown