Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
HenTaiCJN opened this issue May 29, 2023 · 4 comments
Open

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

HenTaiCJN opened this issue May 29, 2023 · 4 comments

Comments

@HenTaiCJN
Copy link

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

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

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

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

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

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

@fustyles
Copy link
Owner

fustyles commented Jun 7, 2023

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

@fustyles
Copy link
Owner

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

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

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

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

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

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

您是否方便发个视频给我,展示出错的情况,我想再去解决看看。
[email protected]

@fustyles
Copy link
Owner

你好法兰斯老师, 首先,非常感谢您的开源代码,我最近在开发运行于手机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
Copy link
Author

你好法兰斯老师, 首先,非常感谢您的开源代码,我最近在开发运行于手机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應該在新版本中修復了該問題。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants