2012-02-27 94 views
1

Papervision等Flash 3D顯示引擎是否允許將數據從swf導出到php後端,反之亦然(PHP轉換爲模型)? Unity是否允許這樣做?Flash中的交互式3D模型將數據導出到php

如果我要在3D軟件包(如Papervision)中使用UI創建一個簡單的「更改模型的顏色」應用程序,然後可以將用戶選擇導出到php還是JavaScript中介?

感謝所有幫助 MitchK

回答

2

它是由你來定義什麼信息,用戶可以導出或不,當你編寫HTML中的表現公式只是想,Flash可以發送GET/POST請求到服務器,你可以發送你想要的任何數據回服務器。

+0

謝謝。我在從Flash中傳輸數據方面非常有經驗,但如果3D模型和UI是在諸如papervision之類的包中設計的,那麼可以導出這些數據嗎?或者,另一種方式,如果我在papervision中有3D對象,我可以更改顏色,更新包裝閃光燈的模型等嗎? – mitch 2012-02-27 03:11:09

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文件格式,並且是否實施您自己的。一旦完成,數據傳輸應該是微不足道的。有幾個選項,所以這取決於你的設置什麼方法最適合你。

+0

謝謝..我會試一試.. – mitch 2012-03-14 02:35:27

+0

這是Papervision的一個基本例子(這是舊的/休眠項目)。 Away3D還提供出口商,如[OBJ](http://away3d.com/livedocs/3.6.0_lib/away3d/exporters/ObjExporter.html)。不過,這些是基於ASCII /文本的格式。優點是你可以在文本編輯器中打開它們或者將它們導入到3D編輯器中,但缺點是文件大小。如果這是個問題,你可以編寫一個二進制格式,或者爲現有的導出器(比如.3ds)編寫一個導出器,它可以在MySQL中存儲爲blob。二進制也更快解析。 HTH – 2012-03-14 08:30:30