【发布时间】:2015-09-11 15:16:28
【问题描述】:
我正在尝试序列化整个场景,以便将其保存到文件中,稍后再加载。我知道 Pv3D 不是目前最好的 3D 引擎,但是我不想重新开始整个项目。尝试加载实际文件并将其数据分配给场景时会出现问题,但会出现 #1009 错误(空对象)。
代码如下:
/* Papervision3D engine setup code here */
//...
var scene:Scene3D = new Scene3D();
//...
var file:FileReference;
function LoadProyect(e:MouseEvent):void
{
var fd:String = "3Dp Files (*.3dp)";
var fe:String = "*.3dp";
var ff:FileFilter = new FileFilter(fd,fe);
file = new FileReference();
file.browse(new Array(ff));
file.addEventListener(Event.SELECT, onFileSelect);
file.addEventListener(Event.COMPLETE, fileComplete);
}
function onFileSelect(e:Event):void
{
file.load();
}
function fileComplete(e:Event):void
{
var aScene:ByteArray = e.target.data;
var objScene:Object = aScene.readObject();
scene = objScene as Scene3D;
}
那么,Scene3D 可以序列化吗? (我猜它们是,它们实际上是在纯文本文件中序列化时输出数据),这种方式可能吗?还是我应该将每个对象单独保存并一个一个加载,然后将其添加到场景中?
【问题讨论】:
-
你是怎么序列化的?
-
使用 ByteArray 类的 writeObject 方法...然后我将其保存到纯文本文件中
标签: actionscript-3 serialization flash-cs5 papervision3d