打开/关闭菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

检测到您可能正在使用存疑的代理服务器访问寻星知识库。为了避免匿名用户使用代理服务器恶意破坏,我们已经限制了您在寻星的部分权限(例如编辑和创建账户)。

您可以关闭代理使用国内真实IP或联系寻星团队为您的IP添加白名单,从而使用寻星知识库的全部功能。如果您曾经正常注册过寻星知识库账户,则您在当前情况下登录将解除部分限制。

如果您已经使用正常的IP访问寻星知识库,但仍然出现此消息,请您尝试刷新缓存或联系寻星团队。

SC云音乐

✨寻星知识库——携手与您,寻觅群星。
Jexjws留言 | 贡献2024年4月14日 (日) 00:23的版本 →‎技术架构
SC网易云 about.png

SC云音乐 是 Jexjws 使用 Turbowarp 制作的一款网易云第三方客户端。

SC云音乐 目前尚未制作完毕。


缘起

2022年时,DarlingJexjws 不满于官方网易云客户端的 卡顿、臃肿,再加上他有播放器制作经验,就想搞个第三方网易云客户端玩玩,而他当时只会Scratch,就理所当然地拿 Scratch 做起来啦!

SC云音乐 在40code上制作,主要因为当时 (2022年6月) 只有40code宽容地允许作品调用第三方网易云API。不过 Jexjws 打算发布稳定版后通过 Eureka 使其在其他平台上可用。

一开始(2022-6-29),Jexjws只是搞了个空作品发布在了40code上面,然后写了一个预告,就几乎忘掉了这码事(有的时候倒是想起来要搞,但感觉太难了就一直没搞),直到what过来催更(2022-7-13),他意识到自己挖了这么大一个坑还没填。感动于40code站长亲自过来催更,他就花了一整个暑假做完了 SC云音乐 的初版,并取得了40code的初级精华,这让他很开心,因为这可是他进sc圈以来获得的第一个精华,他就继续做了下去。

技术架构

SC云音乐 历经迭代,有了自己的一套独特的模块化设计方案,用于防止代码过早的变成屎山、提高代码复用率

  • F engine :实现了角色之间简单的RPC,调用方还能获取返回值。
  • Fapp Frame 应用程序开发模板:开发者可以复制这个角色,在这个角色之上快速创建一个新应用(页面)
  • Player后端、MusicPF音乐播放器前端: 这是两个角色

其他模块

  • PageM页面管理器: 与其他组件配合,实现标签页系统。

PageM,PageManager。即页面管理器。

用来实现多标签功能。

那么这个作品是怎么实现“多标签”的呢?是使用了与旧版苹果手机类似的墓碑机制。

以“用户切换到其他标签页”为例,说明一下这个机制:

当用户切换到其他标签页时,PageM会使用“XXX.closebyid.角色ID"

通知当前正在运行、在页面上显示东西的角色。

被通知角色(克隆体)收到后,会把当前自己的临时数据打包保存在列表“#所有页面缓存信息”的一个项当中。然后使用画笔的“全部擦除”功能清理舞台,最后删除自己。

被通知角色执行完毕后,PageM会通知用户的目标标签页所“负责”的角色,被通知角色收到后会先检查 列表“#所有页面缓存信息”中对应的自己的位置 中的内容。

如果为空,则使用默认设置。

如果不为空,则对内容进行解包并应用这些临时数据。

最后 被通知角色 启动,在屏幕上显示内容。

寻星知识库使用 Cookie 技术提升您的浏览体验,这需要在您的浏览器存储部分信息。禁用 Cookie 将导致部分功能无法正常使用。 寻星团队将严格遵守隐私政策,并尽可能保护您的信息安全。 继续浏览寻星知识库,视为您同意启用 Cookie 并生成、存储相关数据。