主要观点:通过 WASM 与 Bevy 集成 Web 原生 API,利用bevy_channel_trigger
等 crate 实现用户在浏览器中向 Bevy 应用拖放 PNG 图像并加载显示。
关键信息:
- 准备 DOM 接收拖放事件,使用
wasm-bindgen
和gloo
在 Rust 代码中注册dragover
和drop
事件监听器,并设置drop_effect
和effect_allowed
。 - 处理拖放事件,从事件中提取文件数据并转发给 Bevy,使用
FileReader
读取文件二进制数据和元数据。 - 向前端发送事件到 Bevy,通过
bevy_channel_trigger
的ChannelSender
发送事件。 - 在 Bevy 中接收和加载图像数据,将二进制数据转换为
Image
资产并用于渲染。
重要细节: register_drop
函数用于注册事件监听器,处理dragover
和drop
事件。- 在
drop
事件处理中,通过FileReader
读取文件数据并发送给 Bevy。 send_event
函数使用ChannelSender
发送事件到 Bevy。process_web_events
函数在 Bevy 中接收事件并处理图像加载。
结论:展示了通过 WASM 与 Bevy 集成 Web 原生 API 的方法,Bevy 是将交互应用带到 Web 的强大工具,可在 GitHub 上深入研究和修改项目,团队可提供 Bevy 或 Rust 项目支持。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。