Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Как определить frame rate (http://www.flasher.ru/forum/showthread.php?t=62906)

Kenred 10.09.2004 10:57

Как определить frame rate
 
Я вроде просмотрел все возможные методы и свойства объекта MovieClip но не нашел как мне узнать frame rate мувика?. Мне надо загружать аудио а возможны ситуации когда они будут с разным frame rate-ом и чтобы все коректно работало мне надо научиться его корректно определять

iNils 10.09.2004 11:38

Программно это ты не узнаешь.
И что за ситуация при которой аудио будет не корректно работать?

Kenred 10.09.2004 12:21

Цитата:

Оригинал написал(а) iNils
Программно это ты не узнаешь.
И что за ситуация при которой аудио будет не корректно работать?

Блин жалко....
А ситуация такая: делаю SWF плеер с интерфейсом как у Винампа примерно. Нужно реализовывать функцию перескока на определные участки. Время задается в секундах я для "прыжка" расчитываю
<номер_кадра>=<кол-во_секунд>*<frame rate>

и потом пишу $player.gotoAndPlay(<номер_кадра>);
обычно у SWF-ок frame rate равняется 32, но иногда могут попадаться с 12 и тогда косяки

iNils 10.09.2004 12:32

Если swf с музыкой создаешь ты сам, то опиши в них переменную с нужными данными.

Kenred 10.09.2004 12:41

:))) было бы все так просто я бы и не парился :)))

dimarik 10.09.2004 13:30

Проиграй мувик с определенным количеством кадров. Затем рассчитай кол-во кадров в секунду, воспользовавшись замеренным временем

1. getTimer() в первом кадре
2. getTimer() в последнем (например, 10-ом кадре)

Разница = delta от 2-го и 1-го getTimer'а

fps = 10/delta;

ЗЫ Чем больше кадров, тем больше точность определения FPS )(ИМХО)

Kenred 10.09.2004 13:33

ладно буду делать так... по умолчанию 32 а если в XML-ке с плейлистом другой то буду испольовать значения другой

Плейлист создается таким образом
Код:

_global.itemNr = playXML.firstChild.childNodes.length;
var myItem = playXML.firstChild.firstChild;
_global.playlist = new Array();
               
for (var i = 1; i <= _global.itemNr; i++) {
        _global.playlist[i] = myitem.attributes;
        myItem = myitem.nextSibling;
}

а как мне узнать что аттрибут framRate был задан ?
на ПХП было я бы сделал примерно так

if (isset(_global.playlist[k].frameRate))
_global.frameRate = _global.playlist[k].frameRate;
else
_global.frameRate = 32;
а какэто сдлетаь на Flash? кароче говоря аналог функции isset(). И будет ли это работать в даном случае

iNils 10.09.2004 13:43

А почему именно 32 кадра?

dimarik 10.09.2004 13:47

Цитата:

Оригинал написал(а) Kenred

Нужно реализовывать функцию перескока на определные участки. Время задается в секундах я для "прыжка" расчитываю
<номер_кадра>=<кол-во_секунд>*<frame rate>

Если я правильно понял, то сам звук импортируется в отдельные SWF в режиме дизайна. А "функция перескока на определные участки" - это управление ЗВУКОМ (поиск определенного места композиции, например) из родительской SWF.
Вопрос таков: есть ли возможность не связываться с SWF в которые встроен звук, а использовать прямую загрузку mp3 в объект Sound?

Nox Noctis 10.09.2004 13:54

насколько я понимаю, вопрос не в том чтобы узнать фреймрейт мувика, а в том чтобы его проиграть в соответствии со скоростью звуковой дорожки. если можно узнать какой фпс НАДО получить - то есть замечательная функция setInterval :)

someClip.id = setInterval(someClip, "nextFrame", 1000/fps)


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

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