away3d / away3d-core-fp11

Away3D engine for Flash Player 11
http://www.away3d.com
Other
639 stars 273 forks source link

Sprite3D.pickingCollider bug #681

Open mstohrdroid opened 10 years ago

mstohrdroid commented 10 years ago

This is a bug that seems to exist in all versions of Away 4.x where if you try to use any pickingCollider with a sprite3d object besides the default bounding box one, you get a null object exception when the event is triggered.

_spriteMaterial = new ColorMaterial(0xe01f1f);
_spriteSquare = new Sprite3D(_spriteMaterial, 20, 5);
_spriteSquare.pickingCollider = PickingColliderType.AS3_BEST_HIT;
_spriteSquare.showBounds = true;
_spriteSquare.mouseEnabled = true;
_spriteSquare.addEventListener(MouseEvent3D.MOUSE_OVER, spriteSquare_mouseOver);
_spriteSquare.addEventListener(MouseEvent3D.MOUSE_OUT, spriteSquare_mouseOut);
private function spriteSquare_mouseOver(e:MouseEvent3D):void 
{
 trace("spriteSquare_mouseOver");
}

private function spriteSquare_mouseOut(e:MouseEvent3D):void 
{
 trace("spriteSquare_mouseOut");
} 

When the event is triggered:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
 at away3d.entities::Sprite3D/collidesBefore()[C:Workspace4872-EW-Intuitysrcaway3dentitiesSprite3D.as:251]
 at away3d.core.pick::RaycastPicker/getPickingCollisionVO()[C:Workspace4872-EW-Intuitysrcaway3dcorepickRaycastPicker.as:207]
 at away3d.core.pick::RaycastPicker/getViewCollision()[C:Workspace4872-EW-Intuitysrcaway3dcorepickRaycastPicker.as:103]
 at away3d.core.managers::Mouse3DManager/updateCollider()[C:Workspace4872-EW-Intuitysrcaway3dcoremanagersMouse3DManager.as:88]
 at away3d.containers::View3D/render()[C:Workspace4872-EW-Intuitysrcaway3dcontainersView3D.as:676]
 at App3DBase/update()[C:Workspace4872-EW-IntuitysrcApp3DBase.as:169]
 at App3DBase/enterframeHandler()[C:Workspace4872-EW-IntuitysrcApp3DBase.as:278]
 at flash.events::EventDispatcher/dispatchEventFunction()
 at flash.events::EventDispatcher/dispatchEvent()
 at away3d.core.managers::Stage3DProxy/notifyEnterFrame()[C:Workspace4872-EW-Intuitysrcaway3dcoremanagersStage3DProxy.as:92]
 at away3d.core.managers::Stage3DProxy/onEnterFrame()[C:Workspace4872-EW-Intuitysrcaway3dcoremanagersStage3DProxy.as:579] 
ewout-create commented 9 years ago

Has any progress been made on this issue? I'm encountering the same problem at the moment.