30.04.2012, 14:50
|
Интересующийся
|
|
Регистрация: 18.03.2012
Сообщений: 20
|
|
есть ли в js понятие частоты кадров, наподобие как во флэше?
при работе с флэшем там можно задавать кадры от 1 до 250 в секунду и на основе этого строится скорость анимации, которая на любом компе одинаково воспроизводится.
Я сам пока только изучаю JS, уже усвоил, что есть (как и в AS) такие же понятия как и во флэше при загрузке (onLoad) или по событю (MouseOn, MouseOut, Click...)
Но как, скажем, сделать смену картинок каждые полсекунды средствами js, чтобы во всех браузерах и на всех компах с разной скоротью процессоров и проч. одинаково бы проигрывалось? К чему привязываться надо? Ко времени? типа к переменной
var t=new Date();
t.getSeconds;
... и проч. Т.е. от секунд-миллисекунд надо скакать? но тогда на разных компах в разных браузерах это точно будет соблюдаться одинаково?
Или есть какой-то уже готовый метод (может в jQuery это тоже уже заложено?), типа "onEnterFrame" как во флэше - т.е. "по каждому кадру" делать, скажем, смену картинки, какую-то там функцию, действие...
Просто пока ещё не представляю как сделать, скажем, перемещене картинки от левого края браузера до правого и обратно со скоростью, которую как и где надо задавать?..И меняющееся положение картинки относительно левего верхнего угла браузера каким методом/способом задавать, чтобы бегала по какой-то траектории?...
Надеюсь, этот вопрос от только-только изучающего основы js не повергнет знатоков в шок? Можно будет увидеть простенький понятный код или ссылку на КОНКРЕТНУЮ реализацию подобной анимации???
|
|
30.04.2012, 16:15
|
Интересующийся
|
|
Регистрация: 18.03.2012
Сообщений: 20
|
|
здОрово! Спасибо! Правда, пока ещё ничего не понял, но хоть по справочникам теперь буду знать в каком направлении копать, чтобы понять что к чему...
А чтобы объект "бегал" по браузеру есть какие-то подсказки?
|
|
01.05.2012, 14:45
|
Профессор
|
|
Регистрация: 21.12.2010
Сообщений: 243
|
|
Сообщение от Maxmaxmахimus
|
вопрос не читал
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" будут годны?
|
|
01.05.2012, 15:47
|
Интересующийся
|
|
Регистрация: 18.03.2012
Сообщений: 20
|
|
На до же!! Приятно что знатоки подключились
Значит всё же правильно предполагал, что разные браузеры по разному будут проигрывать, с разной скоростью, поскольку, оказывается нет такого понятия в браузере, как fps во флэше...
А как всё же мне div перемещать или параметры у объекта постепенно менять (координаты, цвет фона и проч...)? К чему всё-таки привязываться?
У Maxmaxmахimus задействуется setTimeout() - значит, всё-таки ко времени привязываться (от изменения переменной ne Date()???)? Или какие-то другие методы есть???
|
|
01.05.2012, 18:59
|
Интересующийся
|
|
Регистрация: 18.03.2012
Сообщений: 20
|
|
спасибо Maxmaxmахimus!!!
Никогда бы не узнал про 16 миллисекунд и requestAnimationFrame !!!... Буду копать в этом направлении, хотя мне бы больше помогло, если бы работающий код увидеть, я в этих синтаксисах html/css пока ещё путаюсь, знаю, что для кроссбраузерности лучше jQuery использовать и проч. освоенные мною на текущий момент моменты, которые для меня пока ещё чудом являются. Вот с AS - там всё проще и понятнее для меня, и любую задумку интерактивную мне тоже реализовать проще и быстрее, про анимацию - вообще быстро.. Не думал вообще этот js изучать, но вот приходится более интенсивно свои флэшки в браузеры встраивать, вот и пришлось скакать от давно понятых понятий во флэше к осн.понятиям в js.
По себе знаю, ещё когда только изучал флэш - насколько в форумах уничижительно к новичкам относятся, и гнобят и слэнгом кидаются, только бы показать какое ты ничтожество, "додумалось" и посмело в форум прийти со своими глупостями. Ну ничего, видимо это болезнь всех "спецов". Сейчас вот сам пару обучающих курсов по флэшу записал, третий пишу, а на форумах по прежнему только им понятные объяснения новичкам снизосходят скинуть...
А знатоками на этом форуме, наверное, являются те, у которых написано под ником "Профессор" или карма у них большая. Естественно, понимаю, что это, наверное, необъективная оценка, но я тут новичок, порядков "тутошных" не знаю...
|
|
01.05.2012, 19:31
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
http://habrahabr.ru/post/127014/ статья об этом в комментах явно указанна проблема этого всего
http://jsfiddle.net/paul/XQpzU/ -пример из статьи -явно демонстрирует недостатки метода по сравнению с классикой ,если его засунуть туда, куда не нужно
Последний раз редактировалось dmitriymar, 01.05.2012 в 19:37.
|
|
01.05.2012, 19:34
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Сообщение от andrew_F
|
А знатоками на этом форуме, наверное, являются те, у которых написано под ником "Профессор" или карма у них большая.
|
это ты об этом неадеквате?
http://javascript.ru/forum/members/1...axmaxmakhimus/
|
|
01.05.2012, 19:51
|
Интересующийся
|
|
Регистрация: 18.03.2012
Сообщений: 20
|
|
ну-у-у-у, я тут пока что никого неадекватом не называл, может тут какая-то давняя "война" уже идёт - не знаю, "сами мы не местные", пока верю рейтингам отвечающих на этом форуме, то, как они сами себя называют/подписываются...
Понимаю, что это, наверное, неправильно, но просто хотел бы внятный кроссбраузерный код посмотреть, как этот div заставить перемещаться, сколько тиков должно пройти, чтобы он переместился на 100пкс, скажем, и что берётся в js за этот самый "тик"....вот и говорю всем спасибо, только давайте какую-то внятную инфу, только не пинайте и проч...
Спасибо, сейчас по ссылкам пройду - попробую разобраться с той инфой, что там описывается...
|
|
01.05.2012, 20:25
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Сообщение от Maxmaxmахimus
|
ёлка закукарекала
|
как говорится -кто о чём а вшивый о бане..
|
|
|
|