我可能有一个有趣的情况。我正在使用形状开发动态绘图工具,我需要能够将对象的当前“状态”存储在数据库中。
“形状”将是简单的几何形状以及自定义绘制的形状,因此我不能只存储它们的几何尺寸。
这是一个示例屏幕截图(简单形状):
在使用过程中,可以拖动,调整大小,旋转,删除这些形状并将其拆分为更小的形状,以便保留其当前属性。
有什么想法吗?我只需要一个起点。
答案 0 :(得分:1)
您可以将数据作为ByteArray对象写入/读取到文件系统。如果您正在开发AIR应用程序,则此功能特别有用,因为您可以选择使用EncryptedLocalStore类加密数据(目前仅用于桌面部署目标)。
答案 1 :(得分:0)
一种典型的方法是存储绘图步骤集,然后在加载它们之后重新解析它们。即基本上存储绘图命令列表。这也可以让你在没有太多额外工作的情况下放松你的绘图,进行协作绘图等。对于不复杂的场景来说,这是一个很好的方法和非常低的内存。
这并不重要,但我认为当你在Graphics
对象上绘制基元时,Flash就是如何绘制自己的。
答案 2 :(得分:0)
我可能建议从SVG的子集导出和导入。
尝试http://code.google.com/p/as3svgrendererlib/此库,您可能会发现它很有用。
答案 3 :(得分:0)
我怀疑会出现一些应用程序特定的情况,但这就是我接近它的方式(之前我做过类似的事情):
flash.utils.describeType
返回的内容,以便您可以动态实例化对象。根据您的需要,您可能需要保存过滤器,转换等。
要重建,你基本上可以向后做所有事情。请注意堆叠顺序,以确保以相同的方式分层。
这很简单,但应该是一个开始。如果我这样做,我会更多地考虑做同样的事情,但采用更好的面向对象的方法。