Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   есть ли в js понятие частоты кадров, наподобие как во флэше? (https://javascript.ru/forum/misc/27940-est-li-v-js-ponyatie-chastoty-kadrov-napodobie-kak-vo-flehshe.html)

andrew_F 30.04.2012 14:50

есть ли в js понятие частоты кадров, наподобие как во флэше?
 
при работе с флэшем там можно задавать кадры от 1 до 250 в секунду и на основе этого строится скорость анимации, которая на любом компе одинаково воспроизводится.
Я сам пока только изучаю JS, уже усвоил, что есть (как и в AS) такие же понятия как и во флэше при загрузке (onLoad) или по событю (MouseOn, MouseOut, Click...)
Но как, скажем, сделать смену картинок каждые полсекунды средствами js, чтобы во всех браузерах и на всех компах с разной скоротью процессоров и проч. одинаково бы проигрывалось? К чему привязываться надо? Ко времени? типа к переменной
var t=new Date();
t.getSeconds;
... и проч. Т.е. от секунд-миллисекунд надо скакать? но тогда на разных компах в разных браузерах это точно будет соблюдаться одинаково?

Или есть какой-то уже готовый метод (может в jQuery это тоже уже заложено?), типа "onEnterFrame" как во флэше - т.е. "по каждому кадру" делать, скажем, смену картинки, какую-то там функцию, действие...

Просто пока ещё не представляю как сделать, скажем, перемещене картинки от левого края браузера до правого и обратно со скоростью, которую как и где надо задавать?..И меняющееся положение картинки относительно левего верхнего угла браузера каким методом/способом задавать, чтобы бегала по какой-то траектории?...

Надеюсь, этот вопрос от только-только изучающего основы js не повергнет знатоков в шок? Можно будет увидеть простенький понятный код или ссылку на КОНКРЕТНУЮ реализацию подобной анимации???:blink:

andrew_F 30.04.2012 16:15

здОрово! Спасибо! Правда, пока ещё ничего не понял, но хоть по справочникам теперь буду знать в каком направлении копать, чтобы понять что к чему...
А чтобы объект "бегал" по браузеру есть какие-то подсказки?

Nanto 01.05.2012 14:45

Цитата:

Сообщение от Maxmaxmахimus (Сообщение 172086)
вопрос не читал

var requestAnimationFrame = (function () {
	return window.requestAnimationFrame ||
		window.webkitRequestAnimationFrame ||
		window.mozRequestAnimationFrame ||
		window.oRequestAnimationFrame ||
		window.msRequestAnimationFrame ||
		function ( callback ) {
			return window.setTimeout( callback, 1000 / 60 );
		};

})();

var cancelRequestAnimationFrame = (function () {
	return window.cancelRequestAnimationFrame ||
		window.webkitCancelRequestAnimationFrame ||
		window.mozCancelRequestAnimationFrame ||
		window.oCancelRequestAnimationFrame ||
		window.msCancelRequestAnimationFrame ||
		function ( id ) {
			clearTimeout( id )
		}
})();


requestAnimationFrame подобно setTimeout вызывается при отрисовке следующего (после текущего) кадра в окне браузера, первый аргументом принимает калбак, вторым анимируемый элемент

Помилуйте святой отец! Вы же все ранво Timeout дёргаете! Причём с жёстко заданной частотой "вертикальной развёртки" - какая уж тут свобода анимации?
А если ещё всякие FF начнут подтупливать (что в порядке вещей) на обсчёте анимации? Куда Ваши "fps" будут годны?

andrew_F 01.05.2012 15:47

На до же!! Приятно что знатоки подключились:yes:
Значит всё же правильно предполагал, что разные браузеры по разному будут проигрывать, с разной скоростью, поскольку, оказывается нет такого понятия в браузере, как fps во флэше...
А как всё же мне div перемещать или параметры у объекта постепенно менять (координаты, цвет фона и проч...)? К чему всё-таки привязываться?
У Maxmaxmахimus задействуется setTimeout() - значит, всё-таки ко времени привязываться (от изменения переменной ne Date()???)? Или какие-то другие методы есть???

andrew_F 01.05.2012 18:59

спасибо Maxmaxmахimus!!!
Никогда бы не узнал про 16 миллисекунд и requestAnimationFrame !!!... Буду копать в этом направлении, хотя мне бы больше помогло, если бы работающий код увидеть, я в этих синтаксисах html/css пока ещё путаюсь, знаю, что для кроссбраузерности лучше jQuery использовать и проч. освоенные мною на текущий момент моменты, которые для меня пока ещё чудом являются. Вот с AS - там всё проще и понятнее для меня, и любую задумку интерактивную мне тоже реализовать проще и быстрее, про анимацию - вообще быстро.. Не думал вообще этот js изучать, но вот приходится более интенсивно свои флэшки в браузеры встраивать, вот и пришлось скакать от давно понятых понятий во флэше к осн.понятиям в js.
По себе знаю, ещё когда только изучал флэш - насколько в форумах уничижительно к новичкам относятся, и гнобят и слэнгом кидаются, только бы показать какое ты ничтожество, "додумалось" и посмело в форум прийти со своими глупостями. Ну ничего, видимо это болезнь всех "спецов". Сейчас вот сам пару обучающих курсов по флэшу записал, третий пишу, а на форумах по прежнему только им понятные объяснения новичкам снизосходят скинуть...

А знатоками на этом форуме, наверное, являются те, у которых написано под ником "Профессор" или карма у них большая. Естественно, понимаю, что это, наверное, необъективная оценка, но я тут новичок, порядков "тутошных" не знаю...

dmitriymar 01.05.2012 19:31

http://habrahabr.ru/post/127014/ статья об этом в комментах явно указанна проблема этого всего
http://jsfiddle.net/paul/XQpzU/ -пример из статьи -явно демонстрирует недостатки метода по сравнению с классикой ,если его засунуть туда, куда не нужно

dmitriymar 01.05.2012 19:34

Цитата:

Сообщение от andrew_F
А знатоками на этом форуме, наверное, являются те, у которых написано под ником "Профессор" или карма у них большая.

это ты об этом неадеквате?
http://javascript.ru/forum/members/1...axmaxmakhimus/

andrew_F 01.05.2012 19:51

ну-у-у-у, я тут пока что никого неадекватом не называл, может тут какая-то давняя "война" уже идёт - не знаю, "сами мы не местные", пока верю рейтингам отвечающих на этом форуме, то, как они сами себя называют/подписываются...
Понимаю, что это, наверное, неправильно, но просто хотел бы внятный кроссбраузерный код посмотреть, как этот div заставить перемещаться, сколько тиков должно пройти, чтобы он переместился на 100пкс, скажем, и что берётся в js за этот самый "тик"....вот и говорю всем спасибо, только давайте какую-то внятную инфу, только не пинайте и проч...

Спасибо, сейчас по ссылкам пройду - попробую разобраться с той инфой, что там описывается...

dmitriymar 01.05.2012 20:25

Цитата:

Сообщение от Maxmaxmахimus
ёлка закукарекала

как говорится -кто о чём а вшивый о бане..


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