If you're doing this how the Cycle documentation suggests, then there's no need for preloading as such. The images are all on the page when it loads, and will be loading immediately. If they're big enough that you want to add some sort of "loading..." notification, that's pretty easy
// It's possible, with caching, that the images could
// be loaded *before* this code runs. So:
var is_image_loaded = function(img) {
// IE
if(!img.complete) {
return false;
}
// Others
if(typeof img.naturalWidth != "undefined" && img.naturalWidth == 0) {
return false;
}
return true;
}
var first_slide = $('#slideshow img:first');
if(is_image_loaded(first_slide.get(0)) {
$('#slideshow').cycle();
} else {
first_slide.load(function(e) {
$('#loading').hide();
$('#slideshow').show().cycle();
});
$('#slideshow').hide();
// I'll handwave the display of a loading indicator, since
// it's covered in the tutorial linked in the question.
$('#loading').show();
}
Probably with some adjustment for your situation. But it's a start.