关于触控
lansechenji吧
全部回复
仅看楼主
level 2
现在我在Animate CC H5 canvas 里测试拖拽,下面是一个鼠标的拖拽,但是在手机端触控就让人很头疼,找了很多方法,比如:
var stage = new createjs.Stage('myCanvasId');//启用触摸事件,同时允许触摸事件冒泡到文档中。createjs.Touch.enable(stage,false,true)
这在软件里行不通额,各位大神指点小弟,感激不尽
这是我目前写的鼠标响应
this.stop();
home.Pp.addEventListener("mousedown", Start1)
home.Pp.addEventListener("pressup", Stop1)
function Start1() {
canvas.addEventListener("mousemove", Move1)
}
function Stop1() {
canvas.removeEventListener("mousemove", Move1)
}
function Move2() {
var g
g = home.globalToLocal(stage.mouseX, stage.mouseY)
home.Pp.x = g.x
home.Pp.y = g.y
}
2020年03月19日 06点03分 1
level 13
//如果用于元件内则注册点要对齐左上角
//开启触摸
createjs.Touch.enable(stage);
stage.mouseMoveOutside= true;
//元件定义(舞台中问题和答案的实例名)
wtl = this.wtl
wt = this.wt
da1 = this.da1
da2 = this.da2
wt.x = wtl.x;
wt.y = wtl.y;
//拖拽程序,不要用AS的拖拽代码,要用H5的
//拖动时跟随
wt.on("pressmove",function(evt)
{
evt.currentTarget.x =evt.stageX / stage.scaleX
evt.currentTarget.y =evt.stageY / stage.scaleY
this.feixingshou.x==evt.currentTarget.x
this.feixingshou.y==evt.currentTarget.y
stage.update();
});
//松开时检测拖拽元件的位置,不在则返回
wt.on("pressup",function(evt)
{
if(wt.x > da1.x - 50&& wt.x < da1.x + 50 && wt.y > da1.y - 50 && wt.y< da1.y + 50)
{
wt.x = da1.x;
wt.y = da1.y
}
else if(wt.x > da2.x- 50 && wt.x < da2.x + 50 && wt.y > da2.y - 50 &&wt.y < da2.y + 50)
{
wt.x = da2.x;
wt.y = da2.y
}
else
{
wt.x = wtl.x;
wt.y = wtl.y
}
})
2020年03月20日 23点03分 2
感谢非常感谢[玫瑰]大佬
2020年03月31日 07点03分
大佬,现在移动端完美解决,但是不做用于PC端,是不是缺了什么还是目前不支持[乖]
2020年04月03日 03点04分
@立方体视界 我这边测试是可以支持PC的,电脑端有很多可能,比如浏览器不支持HH5或一些代码被屏蔽等.支持触摸的好像要IE9以上
2020年04月30日 02点04分
摸索了一段时间,可以通过 canvas.addEventListener('touchstart',function(){ })调用原生的Touch
2020年08月26日 12点08分
1