Показать сообщение отдельно
Старый 17.05.2006, 06:54
son_of_war вне форума Посмотреть профиль Отправить личное сообщение для son_of_war Найти все сообщения от son_of_war
  № 11  
Ответить с цитированием
son_of_war

Регистрация: Mar 2006
Сообщений: 125
Отправить сообщение для son_of_war с помощью ICQ
к сожалению ссылку на статью подсказать не могу, но вот пример из жизни:
<script>
mwidth=250;
mheight=200;
mname = "banner.swf";
left=document.body.scrollLeft+(document.body.clientWidth-mwidth)/2;
top=document.body.scrollTop+(document.body.clientHeight-mheight)/2;
style="\"position:absolute; left: "+left+";\
top: "+top+"\"";

message="<embed src=\""+mname+"\" quality=\"high\"\
bgcolor=\"#FFFFFF\" width=\""+mwidth+"\" height=\""+mheight+"\"\
name=\"banner\" align=\"middle\" allowScriptAccess=\"sameDomain\"\
type=\"application/x-shockwave-flash\"\
scale=\"showall\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\"\
style="+style+"/>\
";

function move() {
var timer=setTimeout("move()",10);
document.all['banner'].style.left=document.body.scrollLeft+parseInt((document.body.clientWidth-mwidth)/2);
document.all['banner'].style.top=document.body.scrollTop+parseInt((document.body.clientHeight-mheight)/2);
}

function kill()
{
document.all['banner'].style.display="none";
}

document.write("<div id='span1' >");
document.write(message);
document.write("</div>");
setTimeout("move()",10);
</script>

Все просто: HTML текст, выводящий баннер сделан в переменной message ...
если нужно - туда можно добавить transparent, чтобы баннер не квадратным смотрелся, но по поему опыту это работает только в IE и FF

Далее баннер выводится в простом div, а функция move его позиционирует в центре экрана, вызывается она через setInterval.
Конечно, позиционирование можно сделать и через событие, но это по-разному выглядит для разных браузеров

Когда баннер надо закрыть - из флэши вызывается функция kill.
С этим делом есть некоторая сложность в 8 флэшплеере - там fscommand ("javascript", ...) просто так не сработает - надо немного повозиться, но это не так давно обсуждалось на форуме