I want to control the zoom in OpenLayers.
When the zoom is 3 I want to load KML1 and when the zoom is 4 i want to load KML2.
Could you please advise me how I can
a way to accomplish that is to register an event on event "zoomend" on your map with something like
map.events.register(type, obj, listener);
You can find more info there: http://dev.openlayers.org/releases/OpenLayers-2.11/doc/apidocs/files/OpenLayers/Map-js.html
Maybe you should also load both of your kml and then hide / show the correct layer depend on the zoom level.
As j_freyre mentioned you should register a function, which changes the visibility of your KML-layers, to the "zoomend"-event. In your case it has to look like this:
map.events.register("zoomend", map, zoomChanged);
zoomChanged()
{
zoom = map.getZoom();
if (zoom == 3)
{
kml1.setVisibility (true);
kml2.setVisibility (false);
}
else if (zoom == 4)
{
kml1.setVisibility (false);
kml2.setVisibility (true);
}
}