我在Dart开发游戏,我想将绘图迁移到PIXI.js.基本上我遇到的一种方法是将游戏状态转换为JSON对象,并将此JSON对象传递给外部JS方法,然后创建PIXI容器。
如何创建JSON对象以及如何将其传递给外部JavaScript函数?
答案 0 :(得分:3)
import 'dart:convert';
...
var json = JSON.encode(data);
...
var data = JSON.decode(json);
您可能希望将https://pub.dartlang.org/packages/js用于dart-js-interop。
答案 1 :(得分:3)
JSON.encode
和JSON.decode
是你正在寻找的,但是它们与原始类型(小心,例如DateTime - 不是原始的)和原始类型的集合一起工作。因此,如果您想为对象执行此操作,则应将其转换为map / from map。当对象传递给JSON.encode
时,可以自动调用转换为map,如果此对象具有方法Map toJson()
,则应该显式地完成从map的转换(例如,使用带有Map
参数的构造函数)
此外,这可能很有用:我更喜欢避免隐式toJson
调用,因为当它抛出异常时,在这种情况下你不会看到它的消息和调用堆栈。
可以找到有用的链接和一些有关此信息的信息in this question。