PDA

Volledige versie bekijken : Raar probleem met MovieMaterial


robinthehood
%Europe/Berlin %427 %2008, 10:16
Ik heb een beetje een raar probleem met Papervision! Ik heb een plane met een moviematerial. Dit moviematerial zit gelinkt aan een SWF. Als ik de scene nou render zit er een raar soort bounce in de moviematerial. Het lijkt of hij de moviematerial continu probeert te resizen met behulp van Tweener. Weet iemand hoe je dit kan oplossen?

robinthehood
%Europe/Berlin %470 %2008, 11:18
Ik heb even gegoogled of ik een voorbeeld kon vinden:
klik hier voor een soortgelijk probleem (http://danao.org/demo-apps/pv3d/01.html)

Ik hoop dat iemand hetzelfde heeft gehad, zelf kom ik er niet meer uit. Ik kan niet echt precies mijn vinger erop leggen waar het aan ligt. Waarschijnlijk heeft het iets met automatisch resizen te maken?

xWouterx
%Europe/Berlin %471 %2008, 11:18
zonder code zijn we niet veel vrees ik

robinthehood
%Europe/Berlin %492 %2008, 11:49
package
{
import flash.display.Sprite;
import flash.events.Event;

import org.papervision3d.cameras.*;
import org.papervision3d.materials.MovieMaterial;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.render.*;
import org.papervision3d.scenes.*;
import org.papervision3d.view.*;

public class PV3DTest extends Sprite
{
// variables
private var viewport:Viewport3D;
private var scene:Scene3D;
private var camera:Camera3D;
private var renderer:BasicRenderEngine;
private var plane:Plane;

[Embed(source="library.swf", symbol="star")]
private var Star:Class;

// functions
public function PV3DTest()
{
init();
}

private function init():void
{
camera = new Camera3D();
camera.zoom = 10;
camera.focus = 100;

scene = new Scene3D();
renderer = new BasicRenderEngine();
viewport = new Viewport3D(600, 400);

addChild(viewport);
addEventListener(Event.ENTER_FRAME, render, false, 0, true);

createPlane();
}

private function createPlane():void
{
var frontPlane:Sprite = new Star();

var frontPlaneMaterial:MovieMaterial = new MovieMaterial(frontPlane, false, true);
frontPlaneMaterial.name = "mat";
frontPlaneMaterial.animated = true;
frontPlaneMaterial.smooth = true;
frontPlaneMaterial.tiled = false;
frontPlaneMaterial.opposite = false;
frontPlaneMaterial.interactive = true;

plane = new Plane(frontPlaneMaterial, 134, 96, 2, 2);
scene.addChild(plane);
}

// event handlers
private function render(event:Event):void
{
var maxRotation:uint = 60;
var center:Number = stage.stageWidth/2;
var dist:Number = center - mouseX;
var ratio:Number = dist/center;

plane.rotationY = ratio * maxRotation;
renderer.renderScene(scene, camera, viewport);
}
}
}


De Star die ik embed is een simpele tween van een ronddraaiende ster. Dit laat hij ook zien, maar er zit ook een rare verspringing in die je hier (http://danao.org/demo-apps/pv3d/01.html) ook ziet.

robinthehood
%Europe/Berlin %555 %2008, 13:19
Heb het al gevonden, je moet deze code toevoegen

frontPlaneMaterial.rect = new Rectangle(0, 0, frontPlane.width, frontPlane.height);