像Papervision这样的flash 3D显示引擎是否允许将数据从swf导出到php后端,反之亦然(PHP进入模型)? Unity是否允许这样做?
如果我要在像Papervision这样的3D软件包中使用UI构建一个简单的“更改模型颜色”应用程序,那么我可以将用户选择导出到php或者是javascript中介吗?
感谢您的帮助 MitchK
答案 0 :(得分:2)
由您来定义用户可以导出的信息,就像在html中编写公式,Flash可以向服务器发送GET / POST请求一样,您可以将您想要的任何数据发送回服务器。
答案 1 :(得分:0)
你应该能够。以下是关于如何将网格从Papervision导出为Collada格式的一个简单的旧示例:
package {
import flash.net.FileReference;
import flash.display.*;
import flash.events.MouseEvent;
import flash.utils.ByteArray;
import org.papervision3d.core.io.exporters.ExportCollada;
import org.papervision3d.lights.PointLight3D;
import org.papervision3d.view.BasicView;
import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.objects.primitives.PaperPlane;
import org.papervision3d.objects.special.UCS;
public class PV3DExportTest extends BasicView {
private var mesh:DisplayObject3D;
public function PV3DExportTest() {
super(640,480,false,false,"Debug");
scene.addChild(new UCS(1000));
var light:PointLight3D = scene.addChild(new PointLight3D()) as PointLight3D; light.x = light.y = light.z = 100;
mesh = scene.addChild(new PaperPlane(new FlatShadeMaterial(light,0xFFFF00,0xFF6600),3));mesh.rotationY = 160;mesh.rotationX = 30;
startRendering();
stage.doubleClickEnabled = true;
stage.addEventListener(MouseEvent.DOUBLE_CLICK,save);
}
private function save(event:MouseEvent):void{
var data:ByteArray = new ByteArray();
data.writeUTFBytes(ExportCollada.export(mesh));
new FileReference().save(data,'mesh.dae');
}
}
}
你可以看到它正在运行here。
您需要检查您要使用的库是否已经导出为可以保留所需数据的3D文件格式(颜色/材料/等),如果没有实现自己的数据。一旦完成,数据传输应该是微不足道的。有几个选项,所以由您的设置决定哪种方法最适合您。