Как вы встраиваете SWF-объект, он автоматически загружается и начинает воспроизведение (как вы описали). Общий метод отложенной загрузки или загрузки, основанный на щелчке, заключается в том, чтобы фактически обернуть HTML-код объекта в некоторый javascript и динамически добавить его в DOM на основе вашего события click. Это также то, как сайты фактически не загружают или не начинают воспроизводить видеофайл, пока не произойдет его прокрутка - вместо привязки к событию click, они подключаются к какому-то другому триггеру видимости.
В интернете есть куча скриптов загрузчика SWF, но в двух словах вы делаете что-то вроде этого:
<a id="player" href="#" onclick="playfile()">Play File</a>
и определение для playfile ()
function playfile() {
// create the param and embed tags, set their values
var param = document.createElement('param');
param.name = "movie";
param.value = "video.swf";
var embed = document.createElement('embed');
embed.src = "video.swf";
embed.quality = "high";
embed.bgcolor = "#333399";
embed.width = 320;
embed.height = 240;
embed.name = "video.swf";
// create the object tag and add the param and embed children
var object = document.createElement('object');
object.width = 320;
object.height = 240;
object.appendChild(param);
object.appendChild(embed);
// add new element after A tag
document.getElementById('player').appendChild(object);
}
Это абсолютно грубое и непроверенное, и может даже не сработать, - но идея здравая и должна направить вас в правильном направлении. Желаем удачи!