PDA

Просмотр полной версии : посоветуйте оптммалый fps.....


Pixelboy
22.11.2001, 03:19
какое кол=во фреймов в сек. оптимально, или это зависит только от необходимости....
влияет ли это на вес swf?

netstuff
22.11.2001, 14:59
Чем больше fps, тем больше размер swf.
Это можно сравнить с кинолентой. Согласись, что пленка с частотой кадров 24/сек будет весить (кг) меньше, нежели пленка с частотой 50/сек (при одинаковой длине фильма естественно).
Во флеше, как я понимаю всегда приходится выбирать между плавностью анимации и размером swf.
Официально, Macromedia рекумендует использовать для Интернета значение по-умолчанию - 12 fps.

El
22.11.2001, 15:22
А самое главное чем больше fps тем больше тормозов. Вот макромедия считает, что боле 18-20 делать нельзя, оптимальным являеться 12-15.
Правда я видел ролик, который орабатывал и 70 fps, но там такая машина была...
Для производительности чем меньше кадров тем лучше, а анимацию мы и на 4 кадра делали - и ничего прокатило, главное, что быстро работало :)

John Connor
22.11.2001, 15:31
под вин9х и МЕ все-равно более 24-х кадров не видно... там это как-то тормозится. а под НТ4 и выше (2000, ХР) все хорошо и на 100 и на максимуме. это может иногда понадобиться. а на счет увеличения размера ответ только один - =)))

а если ВСЯ анимация программная!? если ни одно твина нету? тож чтоли размер увеличивается от ФПС!? =))) гы!.

El
22.11.2001, 15:33
2 ndglook :D

netstuff
22.11.2001, 18:57
А можно ли програмно создавать фреймы. Ну например надо "напрограмить" плавное перемещение объекта за заданный период времени. Можно ли сделать так:

function Move(frames) {
for(i = 0; i < frames; i++) {
_root.movie._currentframe = i;
_root.movie._x =+ 10;
}
}

El
22.11.2001, 19:22
А зачем фремы?
Можно например так

вешаешь это на свой клип:

onClipEvent (enterFrame) {
if (this._x < 100)
this._x += 10;
}
}

netstuff
22.11.2001, 19:32
как я понял, он просто возьмет и прорисует конечный вариант?
а если нужна анимация, чтобы плавно двигался?

El
22.11.2001, 19:40
вот в том и прикол, что он будет двигаться "плавно" с заданным приращением координаты пока не достигнет заданной точки.

попробуй сам и все увидишь

netstuff
22.11.2001, 19:47
А не объяснишь по порядку механизм работы?
Как это происходит, а то я не допираю.

И чего-то не понимаю как его связать с on(rollOver)?

El
22.11.2001, 19:58
ну типа все просто. :cool:

у мувиклипа есть обработчик события onClipEvent (enterFrame). Это фактически означает, что каждый раз когда должно начаться проигрывание нового кадра, выполняются действия внутри этого обработчика.

важно! это событие (enterFrame) происходит вне зависимости от того проигрываеться мультик или нет. т.е. даже если в мувике всего один кадр это событие будет исправно срабатывать с частотой fps.

В нащем случае это означает, что 12 раз в секунду (при fps 12) будет вызываться код

if (this._x < 100)
this._x += 10;
}

и мувик будет двигаться со скоростью 10px / frame

коротенько все, если что-то непонятно - пиши

netstuff
22.11.2001, 20:03
И чего-то не понимаю как его связать с on(rollOver)?

El
22.11.2001, 20:10
А! ну да
примерно так

на кнопке

on (release, rollOver) {
_root.moving = true
}
on (rollOut) {
_root.moving = false
}

на клипе

onClipEvent (enterFrame) {
if ( _root.moving == true){
this._x += 10;
}
}


получаем, что при наведении на кнопку объект двигаеться, при "сведении" с кнопки перестает.


Или тебе нужно, чтобы объект начинал движение при наведении на _него_?

netstuff
22.11.2001, 20:19
Ещё один трабл: на самом деле мне надо не движение объекта а scaling.
Пишу:
onClipEvent (enterFrame) {
if(_root.over4 == true)
if (_root.line._yscale < 400)
this.line._yscale += 100;
}

ничего не получается

netstuff
23.11.2001, 10:41
Всё разобрался... совсем к вечеру запарился. Написал this.line._yscale, надо же this._yscale