PDA

Volledige versie bekijken : PV3D Events


Perrytje
%Europe/Berlin %702 %2010, 17:51
Ik ben weer eens bezig met flash en dit keer met papervision3d. Ik probeer op het moment eventlisteners aan Planes toe te voegen, helaas wordt de trace in mijn handler niet getriggert (dus de handler waarschijnlijk ook niet...)

private function drawSquares():void
{
for (var i:int = 0;i< numTiles;i++)
{
var tile:DisplayObject3D = new DisplayObject3D();
var mat:ColorMaterial = new ColorMaterial((Math.random() * 0xFFFFFF));
mat.interactive = true;
var plane:Plane = new Plane(mat,400,400);
tile.addChild(plane);
....blablabla positioningn etc...
scene.addChild(tile);
tile.addEventListener(InteractiveScene3DEvent.OBJE CT_OVER , onTileOver);
}
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}

private function onTileOver(event:InteractiveScene3DEvent):void
{
trace("Boo");
}

Enige inzichten hierin zijn welkom :)

jelmer91
%Europe/Berlin %937 %2010, 23:29
Wat als je de regels

scene.addChild(tile);
tile.addEventListener(InteractiveScene3DEvent.OBJE CT_OVER , onTileOver);


Omdraaid? Eerst even listener, en dan pas toevoegen aan de scene

Perrytje
%Europe/Berlin %678 %2010, 17:17
Ik heb het geprobeerd, maar helaas geen succes. Ook heb ik een trace(tile.hasEventListener()); toegevoegd, en die geeft "true"! Andere ideeën?

[EDIT]Jahoor, het heeft toch gewerkt, maar op een andere manier, ik heb de addEventListener helemaal naar boven verplaatst, en nu werkt hij! Hij staat nu zo:

var tile:DisplayObject3D = new DisplayObject3D();
var mat:ColorMaterial = new ColorMaterial((Math.random() * 0xFFFFFF));
mat.interactive = true;
var plane:Plane = new Plane(mat,400,400);
plane.addEventListener(InteractiveScene3DEvent.OBJ ECT_OVER , onTileOver);
tile.addChild(plane);

jelmer91
%Europe/Berlin %016 %2010, 01:24
tof :) Succes verder met je project!