fustyles / BlocklyResearch

5 stars 4 forks source link

关于"Tried to start the same gesture twice."的问题 #1

Open HenTaiCJN opened 1 year ago

HenTaiCJN commented 1 year ago

你好法兰斯老师, 首先,非常感谢您的开源代码,我最近在开发运行于手机webview中的blockly,你的代码提供了很大的帮助。

接着是关于标题中的问题,这个问题出现在我自己写的“刷新后工作区内容还在”和原本就有的“重设工作区”这个两个功能执行后(导致不能拖动代码块)。这两个功能本质都是将格式为xml的字符串变成dom后放入工作区。在您的网页版和SpBlocklyV2中也都能复现问题。

我看到你也在谷歌的blockly论坛中提出了类似问题并解决,但现在看来并没有彻底解决。

目前我找到了如何在出现这个问题后依旧能拖动代码块的方法,如下图: image

将鼠标放在代码块的空白区域(图中红色圈)点击拖动,而不是放在代码块有图片的地方(图中黑色圈)点击拖动,就能成功将代码块拖入工作区,在成功一次后,后续任意位置都能点击拖动到工作区。

不过这个方法也不是长久之计,还须从本质上解决这个问题

fustyles commented 1 year ago

谢谢您的经验分享,以之前成功解决的经验,这样的问题要追本去找到哪两处同阶段触发了重复的动作。要找出问题点可能也不太容易,或者开发者发生的机会小很少被反应,因此并没有被重视追查原因与解决。

fustyles commented 1 year ago

你好法兰斯老师, 首先,非常感谢您的开源代码,我最近在开发运行于手机webview中的blockly,你的代码提供了很大的帮助。

接着是关于标题中的问题,这个问题出现在我自己写的“刷新后工作区内容还在”和原本就有的“重设工作区”这个两个功能执行后(导致不能拖动代码块)。这两个功能本质都是将格式为xml的字符串变成dom后放入工作区。在您的网页版和SpBlocklyV2中也都能复现问题。

我看到你也在谷歌的blockly论坛中提出了类似问题并解决,但现在看来并没有彻底解决。

目前我找到了如何在出现这个问题后依旧能拖动代码块的方法,如下图: image

将鼠标放在代码块的空白区域(图中红色圈)点击拖动,而不是放在代码块有图片的地方(图中黑色圈)点击拖动,就能成功将代码块拖入工作区,在成功一次后,后续任意位置都能点击拖动到工作区。

不过这个方法也不是长久之计,还须从本质上解决这个问题

您是否方便发个视频给我,展示出错的情况,我想再去解决看看。 fu6625@gmail.com

fustyles commented 4 months ago

你好法兰斯老师, 首先,非常感谢您的开源代码,我最近在开发运行于手机webview中的blockly,你的代码提供了很大的帮助。

接着是关于标题中的问题,这个问题出现在我自己写的“刷新后工作区内容还在”和原本就有的“重设工作区”这个两个功能执行后(导致不能拖动代码块)。这两个功能本质都是将格式为xml的字符串变成dom后放入工作区。在您的网页版和SpBlocklyV2中也都能复现问题。

我看到你也在谷歌的blockly论坛中提出了类似问题并解决,但现在看来并没有彻底解决。

目前我找到了如何在出现这个问题后依旧能拖动代码块的方法,如下图: image

将鼠标放在代码块的空白区域(图中红色圈)点击拖动,而不是放在代码块有图片的地方(图中黑色圈)点击拖动,就能成功将代码块拖入工作区,在成功一次后,后续任意位置都能点击拖动到工作区。

不过这个方法也不是长久之计,还须从本质上解决这个问题

您好,我有嘗試解決了這個問題,修改了blockly.min.js的函式,目前測試不會發生無法拖動的情況。

getGesture(a){ const b="pointerdown"===a.type,c=this.currentGesture; return c? b&&c.hasStarted()?null:c : b?this.currentGesture=new Gesture$$module$build$src$core$gesture(a,this):null }

HenTaiCJN commented 4 months ago

你好法兰斯老师, 首先,非常感谢您的开源代码,我最近在开发运行于手机webview中的blockly,你的代码提供了很大的帮助。 接着是关于标题中的问题,这个问题出现在我自己写的“刷新后工作区内容还在”和原本就有的“重设工作区”这个两个功能执行后(导致不能拖动代码块)。这两个功能本质都是将格式为xml的字符串变成dom后放入工作区。在您的网页版和SpBlocklyV2中也都能复现问题。 我看到你也在谷歌的blockly论坛中提出了类似问题并解决,但现在看来并没有彻底解决。 目前我找到了如何在出现这个问题后依旧能拖动代码块的方法,如下图: image 将鼠标放在代码块的空白区域(图中红色圈)点击拖动,而不是放在代码块有图片的地方(图中黑色圈)点击拖动,就能成功将代码块拖入工作区,在成功一次后,后续任意位置都能点击拖动到工作区。 不过这个方法也不是长久之计,还须从本质上解决这个问题

您好,我有嘗試解決了這個問題,修改了blockly.min.js的函式,目前測試不會發生無法拖動的情況。

getGesture(a){ const b="pointerdown"===a.type,c=this.currentGesture; return c? b&&c.hasStarted()?null:c : b?this.currentGesture=new Gesture$$module$build$src$core$gesture(a,this):null }

非常抱歉沒能及時回復您,我嘗試了這個方法,成功解決了問題了,再次感謝。 在過去一年裡我也進步了很多,您的項目加深了我對blockly的理解,現在我通過npm的blockly包+vue+Web Serial API來構建通過web編程esp32的項目。blockly應該在新版本中修復了該問題。