![]() |
|
||||||||||
|
|||||
|
http://www.dekabank.ru/
как вам такой снег? |
|
|||||
|
.grin! wuz here
|
а я тоже выложу, чтоль =)) недавно вставлял в баннер:
this.timepos = 0;
this.stars = new Array();
this.star_count = 55;
for (i=0; i<this.star_count; i++) {
st=this.stars[i]=this._snow.duplicateMovieClip("s_"+i, i);
st._x = Math.random()*Stage.width;
st._y = Math.random()*Stage.height;
st.z = Math.random()*20+2;
st._xscale = st.z*4;
}
this._snow.removeMovieClip();
this.onEnterFrame = function() {
for (i=0; i<this.star_count; i++) {
st = this.stars[i];
st._y = st._y+st.z/15;
if (st._y>Stage.height) {
st._y = Math.random()*10-5;
st._x = Math.random()*Stage.width;
}
r = Math.sin(i+timepos);
st._x = st._x+Math.sin(r);
st._y = st._y+Math.cos(r);
st._yscale = Math.sin(r+3)*5;
st._rotation = r*1;
this.timepos += .1;
}
};
__________________
Breakcore them all! |
|
|||||
|
переделал снег из конкурса, чтобы он падал сверху, добавил "налипание"
в библиотеке должна быть снежинка с линком flake this.createEmptyMovieClip("target_mc", 999999); snow([target_mc],[ частота паденияв мсек],[объект, на котором они будут залипать]); Там надо только путь хиттесту подправить Последний раз редактировалось Марк; 15.12.2005 в 20:00. |
|
|||||
|
Регистрация: Feb 2006
Сообщений: 16
|
Цитата:
Я не программист.. и не могу понять в чем проблема. - У меня идет большая утечка оперативной памяти с этим исходником.. где-то по мегабайту за 7-10 секунд. Правда, я количество снежинок увеличил. - Но и в оригинале тоже есть эта утечка. PS: у меня Win7
__________________
Rouf Последний раз редактировалось maximrouf; 23.12.2009 в 11:34. |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 425
|
Цитата:
![]() могу дать более-менее универсального снегопада (он же и листопад при желании и прочий пад, при особо богатой фантазии) как тут: http://www.free-lancers.net/users/Co...ojects/311190/ (тормозит из-за большого количество масок на сцене одновременно => нагрузки на CPU, - как исправить знаю, но бесплатно делать не охото =) ) или тут: http://www.free-lancers.net/users/Co...ojects/318369/ (масок нет - тормозов тоже) А так на вскидку: ты мувики снежинок убиваешь после того как они отиграли свою роль и вышли за пределы видимости? Последний раз редактировалось Contemplator; 23.12.2009 в 14:14. |
|
|||||
|
Регистрация: Feb 2006
Сообщений: 16
|
Спасибо за оперативный ответ.
- Тут лежит исходник, в нем буквально 30 строчек кода для генерации снежинок. Снежинки убиваются после выхода за пределы.
__________________
Rouf |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 425
|
Цитата:
во-вторых, посмотри и оттестируй потерю оперативы при таком коде: function randomNumb(min, max) { var number:Number = Math.random()*(max-min)+min; return number; } function mover() { firstTime = 1; this._y += this.speed; this.xCounter += this.step; this._rotation += this.vrash; if (this.xCounter>20) { this.step = -1; this.xSpeed *= -1; this.vrash = 1; } if (this.xCounter<-20) { this.step = 1; this.xSpeed *= -1; this.vrash = -1; } if (this.xCounter<10 && this.xCounter>-10) { this._x += this.xSpeed/2; } if ((this.xCounter<=-10 && this.xCounter>=-15) || (this.xCounter>=10 && this.xCounter<=15)) { this._x += (this.xSpeed/4); } if (this.xCounter>15 || this.xCounter<-15) { this._x += (this.xSpeed/6); } if (this._y>(Stage.height+this._height)) { reStart(this); } } function reStart(clip, rotat) { clip._x = randomNumb(0, Stage.width); clip._y = -clip._height; clip.speed = randomNumb(1/5, 1/2); clip.xSpeed = clip.speed*2*clip.step; clip._xscale = clip._yscale=randomNumb(25, 50); clip._alpha = randomNumb(50, 100); if (rotat) { clip._rotation = randomNumb(-59, 59); } if (firstTime == underfined) { clip._y = randomNumb(0, Stage.height); } } function step() { var myStep = Math.random(); if (myStep>0.5) { myStep = 1; } else { myStep = -1; } return myStep; } function myBg(n) { var bg:MovieClip = this.createEmptyMovieClip("bg", 0); var dep:Number = 0; for (i=0; i<n; i++) { var snowflake1:MovieClip = bg.attachMovie("snowflake1", "snowflake1"+i, dep++); snowflake1.step = step(); reStart(snowflake1, true); snowflake1.xCounter = randomNumb(-20, 20); snowflake1.onEnterFrame = mover; } } myBg(30); |
|
|||||
|
Регистрация: Feb 2006
Сообщений: 16
|
Спасибо! Буду разбираться!
__________________
Rouf |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 425
|
кстати, да, но даже в данном случае - не всегда =)
во-первых векторный примитив вообще может быть до ужаса примитивным (круг, 4 опорные точки) - тогда смысла в переводе в растр нет никакого - нагрузка так и так будет минимальной... а во-вторых: кто мешает использовать в качестве снежинки растровую картинку, обёрнутую в мувиклип? если масштабирование не подразумевается - то это, пожалуй, самый удачный вариант с любой точки зрения (так и вес флехи будет экономиться, ибо вектор с большим числом опорных точек порой вывешивает даже больше чем просто растр такой же по виду, и нагрузка на CPU из-за ненадобности перерисовывать вектор будет минимальной =) ) |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:58. |
|
|
« Предыдущая тема | Следующая тема » |
|
|