Micircle / scratch3.0-note

scratch 3.0 开发笔记
https://micircle.github.io/scratch3.0-note/
356 stars 104 forks source link

Scratch3.0代码开发 #3

Open weijiahui1 opened 5 years ago

weijiahui1 commented 5 years ago

想问一下,怎么实现移动滑块删除的时候实现浮层标识

Micircle commented 5 years ago

不好意思,不是很清楚你说的移动滑块是什么? 可能大家叫法不太一样,是指toolbox、workspace中可以拖动的blocks(我一般称为积木块)吗?

weijiahui1 commented 5 years ago

对 就是积木块, 我想实现的效果就是移动积木块,当移动这个积木块的时候 toolbox上出现一个浮层上面有个垃圾箱的图标

weijiahui1 commented 5 years ago

1537778631 1 就这个效果

Micircle commented 5 years ago

可以看下blockly的playground:在拖动积木到侧边栏的时候,鼠标的图标会多一个小红叉。 这个也是类似这么做,大致步骤是:

  1. 设定好积木删除区域的范围
  2. 监听积木拖动的事件,判断鼠标当前位置是否在删除区
  3. 显示/隐藏 这个带删除图标的图层。

具体实现需要对scratch-blocks源码做出一些修改。

weijiahui1 commented 5 years ago

这个只能去动scratch-blocks的源码吗? 不能在scratch-gui中监听到这个事件吗? 我目前研究了好久也没有实现:(

Micircle commented 5 years ago
2018-09-24 17 34 14

如上图,你应该也有留意到在积木移动到舞台区的时候,会发现角色栏样式有变化,这个其实也是和你的问题类似,就是通过在积木被拖动的时候计算了鼠标位置,如果是在工作区外就抛出事件。blockly库本身也是没这个事件,是scratch根据需求增加的。

scratch-blocks有判断删除区域和更改鼠标图标的方法,但如果想要完全实现自己的需求可能还是需要修改部分源码。

如果你发现更方便的实现方式,也希望能告诉我~

weijiahui1 commented 5 years ago

好的 我继续研究研究,还有个问题想请教一下,scratch-gui这个项目打包后会生成一个lib.min.js这个文件大概有16.9M,当在测试上运行这个打包后的文件的时候,加载速度非常慢,请问有什么好的解决方法吗?

Micircle commented 5 years ago

可以使用webpack将代码分割成几个小的js包,关键词:splitChunks

GitGepeng commented 2 years ago

可以说说具体怎么分割吗?