Форум: "Media";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизЭффект Найти похожие ветки
← →
Builder (2004-01-26 23:52) [0]Уважаемые мастера,
я встречал пару раз на сайтах такой эффект - по экрану всякие там снежинки летают, и проч. причем поверх окна.
Ну я понимаю что там все в jave, а хотелось бы в Дельфи как - нибудь сделать, пробовал как фон *.avi вставлять - получилось не то. Вообщето я так понимаю что нужно как - то резидент делать или что?
← →
Brahman © (2004-01-27 09:55) [1]Сначала разберись, что нужно: окно твоей программы, окно Windows (Desktop), да и про "резиденты" забудь:)
← →
Builder (2004-01-27 10:43) [2]Нужно окно программы, а резидент, не значит assembler"овский
вирус, а просто путь к решению.
Есть множество прикольных приложений - котята там бегают, или шарики летают, вот мне интересно как этоо делается
← →
_none_ © (2004-01-27 11:16) [3]to [Builder] создается окошко, на которое вырезается по форме с помощью регионов
← →
_none_ © (2004-01-27 11:17) [4]to [Builder] а снежинки на сайте - обычный динамик хтмл
← →
DENNIS © (2004-01-27 11:54) [5]_non_ прав - Обычнай HTML c JavaScript. Если тебе нужно могу дать. Делал как-то давно для своей "HOME". А что касается дельфы, то была прога "Snow". Падал снег на окна, панель пуска. Если для каждой снежинки делать отдельное окно, то какими силами???
← →
Brahman © (2004-01-27 13:09) [6]Вот, кстати и путь к решению минимальными силами.
TWebBrowser + DHTML
← →
Mihey © (2004-01-27 22:20) [7]>_non_ прав - Обычнай HTML c JavaScript. Если тебе нужно могу дать.
Очень интересно, как ты обратишься к объекту, если у тебя обычный HTML. Уж если точно, то плюс ко всему этому ещё и DHTML обязательно нужен, с его слоями или хотя бы идентифицированием элементов.
>Если для каждой снежинки делать отдельное окно, то какими силами???
Угу, наделать тысячу форм (в Design Time), присвоить им белый цвет и изменять Top и Left. А ещё лучше TImage растянуть на весь экран - всё равно больше не видно.
2 Builder:
Делается это либо через рисовнаие на десктопе, либо через оверлеи, используя DirectX, а всякиз котят можно делать, например, через окна с регионами.
← →
DENNIS © (2004-01-27 23:42) [8]Mihey> Ха-ха. Вот только все подряд теперь будем растягивать!
HTML лежит в нете, не надо к нему обращаться. Его вызыват, например, IE. В нем с помощью JS можно менять свойства объектов (в том числе left и top для картинки, но там еще есть ньюансы). Не обязательно DHTML.
Delphi там не при делах.
P.S.
Любишь ты двойки ставить. Лучше объясни человеку как, если знаешь.
← →
Mantic0re (2004-01-28 11:03) [9]А я бы просто спрайты рисовал на GetWindowDC(MainWinHnd)...
И просто и быстро и без гимора..
Какие там нафиг DHTML..
← →
Manticore (2004-01-28 11:05) [10]Ну конечно в отдельном потоке,
и каждая снежинка - объект (а можно и не так 8) )
← →
Mihey © (2004-01-28 20:06) [11]2 DENNIS:
>HTML лежит в нете, не надо к нему обращаться. Его вызыват, например, IE. В нем с помощью JS можно менять свойства объектов (в том числе left и top для картинки, но там еще есть ньюансы). Не обязательно DHTML. Delphi там не при делах.
Слушай, а ты что-нибудь хорошо знаешь? Вот сделал ты на HTML цветную надпись, например "<font color="#00FF00">Delphi!!!</font>". Вот как ты на JavaScript изменишь цвет этой надписи????? Да никак, потому что в коде ты не сможешь указать, цвет какой именно надписи надо менять! Чистый HTML не индексирует элементы!!!!!
Решение. Вместо этого пишем: "<font id="Sign1" color="#00FF00">Delphi!!!</font>". И вот уже по этому id мы можем обращаться к этой надписи. Так вот этот id - это элемент DHTML. DHTML - это Dynamic HTML, т.е. ДИНАМИЧЕСКИЙ. А просто HTML - статичен. Ты понимаешь разницу?
Блин, чесное слово, если не знаешь, то не вводи остальных в заблуждение. Почему то пока ещё DHTML не был введён, такие снежинки в Интернете не появлялись. По твоему, раньше люди были глупее???
← →
Mihey © (2004-01-28 20:08) [12]2 Mantic0re:
Рисовать на десктопе можно, но тогда вновь появляющиеся окна будут затирать нарисованное.
← →
DENNIS © (2004-01-28 22:00) [13]Mihey>>
<html>
<head>
<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style>
#Sn1 {
width: 17px; height: 14px; left: 0px; top: 0px; position: absolute; overflow: auto;
}
#Sn2 {
width: 17px; height: 14px; left: 0px; top: 0px; position: absolute; overflow: auto;
}
#Sn3 {
width: 17px; height: 14px; left: 0px; top: 0px; position: absolute; overflow: auto;
}
#Sn4 {
width: 17px; height: 14px; left: 0px; top: 0px; position: absolute; overflow: auto;
}
#Sn5 {
width: 17px; height: 14px; left: 0px; top: 0px; position: absolute; overflow: auto;
}
#Sn6 {
width: 17px; height: 14px; left: 0px; top: 0px; position: absolute; overflow: auto;
}
#Sn7 {
width: 17px; height: 14px; left: 0px; top: 0px; position: absolute; overflow: auto;
}
</style>
<script language="JavaScript">
<!-- //hide script KDI!
miny=300;
d=document;
function beg() {
d.all.Sn1.style.posLeft=100;
d.all.Sn1.style.posTop=150;
d.all.Sn2.style.posLeft=200;
d.all.Sn2.style.posTop=220;
d.all.Sn3.style.posLeft=300;
d.all.Sn3.style.posTop=100;
d.all.Sn4.style.posLeft=400;
d.all.Sn4.style.posTop=300;
d.all.Sn5.style.posLeft=500;
d.all.Sn5.style.posTop=50;
d.all.Sn6.style.posLeft=600;
d.all.Sn6.style.posTop=300;
d.all.Sn7.style.posLeft=700;
d.all.Sn7.style.posTop=150;
}
function fly() {
x=d.all.Sn1.style.posLeft;
y=d.all.Sn1.style.posTop;
dx=Math.round(Math.random()*2)-1;
dy=Math.round(Math.random()*5);
x=x+dx;
y=y+dy;
if (y>miny) {y=-20};
d.all.Sn1.style.posLeft=x;
d.all.Sn1.style.posTop=y;
x=d.all.Sn2.style.posLeft;
y=d.all.Sn2.style.posTop;
dx=Math.round(Math.random()*2)-1;
dy=Math.round(Math.random()*5);
x=x+dx;
y=y+dy;
if (y>miny) {y=-20};
d.all.Sn2.style.posLeft=x;
d.all.Sn2.style.posTop=y;
x=d.all.Sn3.style.posLeft;
y=d.all.Sn3.style.posTop;
dx=Math.round(Math.random()*2)-1;
dy=Math.round(Math.random()*5);
x=x+dx;
y=y+dy;
if (y>miny) {y=-20};
d.all.Sn3.style.posLeft=x;
d.all.Sn3.style.posTop=y;
x=d.all.Sn4.style.posLeft;
y=d.all.Sn4.style.posTop;
dx=Math.round(Math.random()*2)-1;
dy=Math.round(Math.random()*5);
x=x+dx;
y=y+dy;
if (y>miny) {y=-20};
d.all.Sn4.style.posLeft=x;
d.all.Sn4.style.posTop=y;
x=d.all.Sn5.style.posLeft;
y=d.all.Sn5.style.posTop;
dx=Math.round(Math.random()*2)-1;
dy=Math.round(Math.random()*5);
x=x+dx;
y=y+dy;
if (y>miny) {y=-20};
d.all.Sn5.style.posLeft=x;
d.all.Sn5.style.posTop=y;
x=d.all.Sn6.style.posLeft;
y=d.all.Sn6.style.posTop;
dx=Math.round(Math.random()*2)-1;
dy=Math.round(Math.random()*5);
x=x+dx;
y=y+dy;
if (y>miny) {y=-20};
d.all.Sn6.style.posLeft=x;
d.all.Sn6.style.posTop=y;
x=d.all.Sn7.style.posLeft;
y=d.all.Sn7.style.posTop;
dx=Math.round(Math.random()*2)-1;
dy=Math.round(Math.random()*5);
x=x+dx;
y=y+dy;
if (y>miny) {y=-20};
d.all.Sn7.style.posLeft=x;
d.all.Sn7.style.posTop=y;
setTimeout("fly()", 100);
}
// -->
</script>
.....
<body>
<script language="JavaScript">
<!-- //hide script KDI!
for (i=1;i<8;i++) {
d.write("<span id=Sn"+i+"><img src="images/sn1.gif"></span>");
}
// -->
</script>
</body>
</html>
← →
DENNIS © (2004-01-28 22:01) [14]html+JS+Style.
← →
Mihey © (2004-01-28 23:29) [15]d.write("<span id=Sn"+i+"><img src="images/sn1.gif"></span>");
А это что?
← →
Mantic0re (2004-01-29 12:11) [16]2Mihey:
Ну и что, что будут затирать, а ты наверх рисуй (таймер..)
← →
Mihey © (2004-01-29 17:38) [17]2 Mantic0re:
>Ну и что, что будут затирать, а ты наверх рисуй (таймер..)
А вот это зря. Если рисовать по таймеру, то останутся моменты, когда окно показалось, но таймер ещё не сработал. К тому же, десктоп - не такой объект, на котором быстро рисуется.
Наверное, лучше всего идити через регионы. Я недавно вытащил из копмонента FormRgn процедуру создания региона по изображению и переписал её под Graphic32 - получилось очень быстро.
← →
Mantic0re (2004-01-30 10:09) [18]Ну и что?
Смотрится все нормально.
И почему только десктоп - ведь разговор был о собственном окне.
Можно и через регионы, но все равно - медленно,
спрайты быстрее :)
← →
Mihey © (2004-01-30 20:28) [19]2 Mantic0re:
Э-э... А как добъёшься прозрачности окна? Рисуя подложку? Тогда работать на компе будет невозможно. Ладно, пофиг. Всё равно мы склоняемся к тому, что надо самому рисовать, а не пытаться .avi загружать - это же так смешно. Avi размером с экран даст такую тормозню....
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.039 c