Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   onEnterFrame а что не так (http://www.flasher.ru/forum/showthread.php?t=65663)

iNils 20.06.2005 18:03

ну я же не с точностью до 1 считаю. одно дело когда диапазон 100-130, а другое когда 160-180.

50%LameRa 21.06.2005 15:52

Ну вот, три дня назад ушел в полной уверенности что все понял, а теперь и понял что я до этого ничего не понял :).
Итак, что мы имеем на данный момент:
1. onEnterFrame нагружает процессор и результат его работы находится в прямой зависимости от fps(а его погрешность при fps=15 мне вообще не понятна :confused: ).
2. Интервалы юзаем когда просчитать что либо надо очень быстро, по крайней мере быстрее чем это что-то отобразиться(та же пуля).
В этом случае(если я правельно понял) результат работы интервалов от fps не зависит, фунция просто вызывается чаще чем меняются кадры.
3. Если частота вызова интервалов больше чем частота смены кадров, то по Муку интервальная функция будет вызвана в том кадре "который появится по истечении времени интервала" это собственно и обястняет погрешности интервалов. Например при fps 11 и интервалом 100 когда трейситься вот это
180,180,180,180,180,180,180,180,180,181,188,180,18 0,180,180,180,180,180
кадры меняются каждые 90,9090...мс а функция вызывается каждые 100мс и выполняется, к сожалению, не при наиболее близком значении а 90,9090..(второй кадр) а в следующем т.е. через 2*90,9090...=180 что мы и видим то же происходит и с последующими кадрами.
Т.е. результат работы при интервалах больших чем частота смены кадров зависит от fps.
Поправьте, если в чем ошибся.

Captain Crocus 21.06.2005 16:08

2 50%LameRa

Запусти еще загрузку, например Фотошопа, и посмотри какими рванными станут интервалы при всех fps. От процессора еще, от процессора, от загрузки его.

iNils 21.06.2005 17:10

2:50%LameRa
Судя по твоей логике в пункте 3, получается что при фпс=1 (1000мс между фреймами), сет интервал с значением 100, должен вызываться только при входе во второй кадр, то есть через 1000мс.

Captain Crocus 21.06.2005 17:27

2iNils
50%LameRa писал "результат работы при интервалах БОЛЬШИХ чем частота смены кадров", а не меньше.

Может хватит, парится? Не только фпс влияет, это раз, и синхронизация происходит при установлении головки воспроизведения на кадр, даже если должен сработать сетИнтервал, но ты уже на кадре, пусть только войдя, будешь ждать следующего кадра. Тоже самое в Библии описано, почти как у Мука.

iNils 21.06.2005 17:41

2Captain Crocus : С какой стати флеш когда частота вызова интервалов больше чем частота смены кадров, будет ждать когда наступит следующий кадр, а в обратном случае не будет?

Captain Crocus 21.06.2005 18:41

да, я тоже чего-то перемудрил

Captain Crocus 22.06.2005 10:43

2iNils
Опять разночтение получилось, говорили "результате работы при ИНТЕРВАЛАХ БОЛЬШИХ чем частота смены кадров", а ты говоришь о "ЧАСТОТЕ вызова интервалов БОЛЬШЕ, чем частота смены кадров".

В любом случае происходит подсчет кратности: сколько фреймов укладывается в один интервал и сколько интервалов укладывается в один фрейм, при первом случае и втором соответственно. И точно посчитать все это невозможно. Потому как частота смены фреймов также величина непостоянная, зависящая от многих факторов.

Если бы был известен механизм синхронизации между фреймрейтом и сетИнтервалом, то, наверное, можно было бы хитро все подладить. Хотя это тоже не факт, т.к. функции заложенные в сетИнтервал являются кодом, а исполнение кода влияет на фреймрейт, а фреймрейт в свою очередь влияет на сетИнтервал.

iNils 22.06.2005 11:20

ты хочешь этим сказать, что все это чистой воды шаманство? :d

Captain Crocus 22.06.2005 11:51

пока закрыта реализация плеера, то да. мы же не можем предположить приоритеты выполнения процессов. или давай запасемся банками кофе, блоками сигарет и... будем проводить эксперементы. ;)

iNils 22.06.2005 13:10

я не курю и кофе не пью :)

Captain Crocus 22.06.2005 13:31

счастливчик. я вот тоже, сейчас докурю и брошу.


Часовой пояс GMT +4, время: 16:32.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.