Hallo,
also ich habe mein erstes Papervision Projekt und bin eigentlich ganz zufrieden.
Nun möchte ich gerne folgendes erreichen:
Der User kann Bilder und Text usw. zusammenstellen und per klick auf den Btn Vorschau wird daraus per Php eine Textur generiert und danach das 3D Modell neu geladen um dieses auch anzuzeigen.
Ich lade einfach die 3d.Swf in meine index.swf
Jetzt würde ich es aber lieber so machen das nur die Textur neu geladen wird.
Geht das und wenn ja wie???
Hier der bisherige Code:
PHP-Code:
package {
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.objects.parsers.Collada;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.lights.PointLight3D;
import org.papervision3d.materials.shadematerials.PhongMaterial;
import org.papervision3d.materials.shadematerials.EnvMapMaterial;
import org.papervision3d.materials.shaders.PhongShader;
import org.papervision3d.materials.shaders.ShadedMaterial;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.view.BasicView;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.lights.PointLight3D;
import flash.display.Loader;
import flash.events.Event;
import flash.display.BitmapData;
import flash.net.URLRequest;
import flash.display.Bitmap;
public class objekt extends BasicView
{
public var becher:DisplayObject3D;
public var mList:MaterialsList;
private var img:Loader;
public var environment:EnvMapMaterial;
public var light:PointLight3D
public var phong:PhongMaterial;
public var zufall:Number;
public function randomRange(minNum:Number, maxNum:Number):Number {
return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
}
public function objekt() {
mList = new MaterialsList();
img = new Loader();
zufall = randomRange (0,500);
trace (zufall)
img.load(new URLRequest("http://www.profound-applications.de/memo/tex/textur.jpg?was="+zufall));
img.contentLoaderInfo.addEventListener(Event.COMPLETE, onImgComplete);
addEventListener(Event.ENTER_FRAME, loop)
}
public function onImgComplete(e:Event):void
{
trace ("loading completed")
var bitmapMaterial:BitmapMaterial = new BitmapMaterial(e.target.content.bitmapData, true);
var shader:PhongShader = new PhongShader(light, 0xffffff, 0x000000, 10);
var shadedMaterial:ShadedMaterial = new ShadedMaterial(bitmapMaterial, shader);
shadedMaterial.doubleSided = true;
mList.addMaterial(shadedMaterial, "Material");
becher = new Collada("tasse_mesh.dae",mList);
becher.moveDown(0);
becher.scale = 3;
becher.pitch( 0);
becher.createViewportLayer( viewport );
scene.addChild(becher);
addEventListener(Event.ENTER_FRAME, tick);
}
private function tick(e:Event):void
{
singleRender();
}
private function loop(e:Event):void
{
becher.rotationY +=2
becher.rotationY +=2
}
}
}