Интерактивная 3D-модель во флеш-экспорте данных в php - PullRequest
1 голос
/ 27 февраля 2012

Позволяют ли движки 3D-отображения флэш-памяти, такие как Papervision, экспортировать данные с swf на серверную часть php и наоборот (PHP в модель)?Позволяет ли это Unity?

Если бы я собирался создать простое приложение «изменить цвет модели» с пользовательским интерфейсом в 3D-пакете, таком как Papervision, я мог бы затем экспортировать пользовательские варианты в php или, возможно,javascript посредник?

Спасибо за любую помощь MitchK

Ответы [ 2 ]

2 голосов
/ 27 февраля 2012

Вам решать, какую информацию пользователь может экспортировать или нет, так же, как когда вы кодируете формуляр в html, Flash может отправлять запросы GET / POST на сервер, вы можете отправлять любые данные, которые вы хотите, обратно в сервер.

0 голосов
/ 07 марта 2012

Вы должны быть в состоянии. Вот простой старый пример того, как экспортировать сетку из 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');
        }
    }
}

Вы можете видеть, что он работает здесь .

Вам нужно будет проверить, экспортирует ли библиотека, которую вы собираетесь использовать, в формат файла 3D, который может сохранить необходимые вам данные (цвета / материалы / и т. Д.) И, если нет, реализовать ваши собственные. Как только это будет сделано, передача данных должна быть тривиальной. Есть несколько вариантов, так что метод зависит от ваших настроек.

...