That was a false positive. Now it sometimes doesn't even appear when far away. What the heck? o.O
Here is the complete function:
public function KillAnimation(p_scene:Scene3D, p_weapon:Pivot3D, p_source:Avatar3D, p_target:Avatar3D)
{
_scene = p_scene;
_weapon = p_weapon;
_source = p_source;
_target = p_target;
// Remove bounding box for this one to disable clipping
for each (var mesh:Pivot3D in _weapon.children)
{
if (mesh is Mesh3D)
{
Mesh3D(mesh).bounds = null;
}
}
_scene.addChild(_weapon);
// Add specular & normal textures
// Splash
var texture :Texture3D = new Texture3D(new SplashSpec().bitmapData);
var shader :Shader3D = Shader3D(Mesh3D(_weapon.getChildByName("splash_geometry1")).surfaces[0].material);
shader.filters.push(new SpecularMapFilter(texture, 50, 6));
shader.build();
Mesh3D(_weapon.getChildByName("splash_geometry1")).surfaces[0].material = shader;
// Hammer
texture = new Texture3D(new HammerSpec().bitmapData);
shader = Shader3D(Mesh3D(_weapon.getChildByName("hammer")).surfaces[0].material);
shader.filters.push(new SpecularMapFilter(texture, 50, 1));
texture = new Texture3D(new HammerNormal().bitmapData);
shader.filters.push(new NormalMapFilter(texture));
shader.build();
Mesh3D(_weapon.getChildByName("hammer")).surfaces[0].material = shader;
// Set orientation and position of weapon
var posSource :Vector3D = p_source.getModel().getPosition();
var posTarget :Vector3D = p_target.getModel().getPosition();
var dir :Vector3D = Vector3DUtils.sub(posSource, posTarget);
dir.y = 0;
dir.z += 1.0;
_weapon.setOrientation(dir.clone());
dir.z -= 1.0;
_weapon.setPosition(posTarget.x, posTarget.y, posTarget.z);
// Set source position for best distance
Vector3DUtils.setLength(dir, 5.5);
posTarget = Vector3DUtils.add(posTarget, dir);
p_source.moveTo(posTarget, true);
// Disable movement
_source.allowMovement(false);
_target.allowMovement(false);
// Start anim
_weapon.children[0].addEventListener(Pivot3D.ANIMATION_COMPLETE_EVENT, handleF3DAnimComplete);
_weapon.addLabel(new Label3D("hammer", 0, 32));
_weapon.gotoAndPlay("hammer", 0, Pivot3D.ANIMATION_STOP_MODE);
}