La siguiente es una solución que he creado para abordar el fundido uniforme de trazo y de relleno y lo hice fácilmente reutilizables por lo que es una función.
segundos es el tiempo que tardará en producirse el fundido de salida y la devolución de llamada para que pueda realizar otra acción una vez que se complete.
En mi proyecto, la función de devolución de llamada elimina el polígono del mapa y elimina la variable.
function polygon_fadeout(polygon, seconds, callback){
var
fill = (polygon.fillOpacity*50)/(seconds*999),
stroke = (polygon.strokeOpacity*50)/(seconds*999),
fadeout = setInterval(function(){
if(polygon.strokeOpacity + polygon.fillOpacity <= 0.0){
clearInterval(fadeout);
polygon.setVisible(false);
if(typeof(callback) == 'function')
callback();
return;
}
polygon.setOptions({
'fillOpacity': Math.max(0, polygon.fillOpacity-fill),
'strokeOpacity': Math.max(0, polygon.strokeOpacity-stroke)
});
}, 50);
}
Esta solución no aborda el desvanecimiento uniforme de trazos y rellenos. Mi relleno desaparecería mucho antes del ataque. Sin embargo, voté porque estuvo muy cerca de mi primera solución. – iambriansreed