Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
foobar2000:tagz:tutorial:create_animation [2006/06/07 05:28] Mishail |
foobar2000:tagz:tutorial:create_animation [2006/06/11 02:55] (текущий) |
||
---|---|---|---|
Строка 10: | Строка 10: | ||
Для того чтобы применить новые цвета, перейдите во вкладку **Style** столбца //Track// и добавьте эти строки в конец существующего скрипта. | Для того чтобы применить новые цвета, перейдите во вкладку **Style** столбца //Track// и добавьте эти строки в конец существующего скрипта. | ||
- | <html><pre><font color="#808080"><i>[...]</i></font></br> | + | <html><pre class="code"><font color="#808080"><i>[...]</i></font> |
- | </br> | + | |
- | $if(%isplaying%,</br> | + | $if(%isplaying%, |
- | $set_style(text,$get_global(cTxtPlay),$get_global(cTxtPlay))</br> | + | $set_style(text,$get_global(cTxtPlay),$get_global(cTxtPlay)) |
- | $set_style(back,$get_global(cBgPlay),$get_global(cBgPlay))</br> | + | $set_style(back,$get_global(cBgPlay),$get_global(cBgPlay)) |
) | ) | ||
</pre></html> | </pre></html> | ||
Строка 24: | Строка 24: | ||
Естесттвенно эта переменная должна быть использована в скрипте. Лучше всего это сделать во вкладке **Display** столбца //Track//, в которой мы уже сделали отображение имен исполнителей красным цветом. | Естесттвенно эта переменная должна быть использована в скрипте. Лучше всего это сделать во вкладке **Display** столбца //Track//, в которой мы уже сделали отображение имен исполнителей красным цветом. | ||
- | <html><pre> | + | <html><pre class="code"> |
- | <font color="#808080">$if($and($get_global(isAlbum),$meta(album artist)),</br> | + | <font color="#808080">$if($and($get_global(isAlbum),$meta(album artist)), |
- | </br></font> | + | </font> |
- | $if(%isplaying%,</br> | + | $if(%isplaying%, |
- | $get_global(cTxtVAPlay),</br> | + | $get_global(cTxtVAPlay), |
- | <font color="#808080">$ifequal(%tracknumber%,1,$get_global(cTxtVA1),$get_global(cTxtVA))</br> | + | <font color="#808080">$ifequal(%tracknumber%,1,$get_global(cTxtVA1),$get_global(cTxtVA)) |
- | )</br> | + | ) |
- | </br> | + | |
- | [$meta(artist)' - ']$rgb()</br> | + | [$meta(artist)' - ']$rgb() |
- | )</br> | + | ) |
- | </br> | + | |
%title%</font> | %title%</font> | ||
</pre></html> | </pre></html> | ||
Строка 44: | Строка 44: | ||
"Now-playing" анимация состоит из двух частей. Первая часть касается столбца //Time//, в нем мы хотим показывать оставшееся время проигрывания песни. Вкладка **Display** это то самое место, где мы будем это делать. | "Now-playing" анимация состоит из двух частей. Первая часть касается столбца //Time//, в нем мы хотим показывать оставшееся время проигрывания песни. Вкладка **Display** это то самое место, где мы будем это делать. | ||
- | <html><pre> | + | <html><pre class="code"> |
- | $if(%_time_remaining%,</br> | + | $if(%_time_remaining%, |
- | '['%_time_remaining%']',</br> | + | '['%_time_remaining%']', |
- | <font color="#808080">$if2(%_length%,'n/a')</font></br> | + | <font color="#808080">$if2(%_length%,'n/a')</font> |
) | ) | ||
</pre></html> | </pre></html> | ||
Строка 61: | Строка 61: | ||
Для того чтобы это сделать, нам нужен таймер, определяющий интервалы между всеми состояниями. К сожалению в Tagz нет явной встроенной поддержки таймеров, но мы можем сделать наш собственный, используя функцию ''$mod()'' и поле ''%_time_elapsed_seconds%'', которые работая совместно выступят в роли посекундного счетчика. Давайте посмотрим на скрипт во вкладке **Display** столбца ''Tracknumber''. Здесь нам понадобится немного другой скрипт. | Для того чтобы это сделать, нам нужен таймер, определяющий интервалы между всеми состояниями. К сожалению в Tagz нет явной встроенной поддержки таймеров, но мы можем сделать наш собственный, используя функцию ''$mod()'' и поле ''%_time_elapsed_seconds%'', которые работая совместно выступят в роли посекундного счетчика. Давайте посмотрим на скрипт во вкладке **Display** столбца ''Tracknumber''. Здесь нам понадобится немного другой скрипт. | ||
- | <html><pre> | + | <html><pre class="code"> |
- | $ifequal($put(foo,<b>$mod(%_time_elapsed_seconds%,8)</b>),0,</br> | + | $ifequal($put(foo,<b>$mod(%_time_elapsed_seconds%,8)</b>),0, |
- | '))))',</br> | + | '))))', |
- | // вставьте состояния с 1 по 7 здесь</br> | + | // вставьте состояния с 1 по 7 здесь |
) | ) | ||
</pre></html> | </pre></html> | ||
Строка 76: | Строка 76: | ||
''$Ifequal()'' корректно обработает остаток от деления 0, что является началом нашей анимации, ведь ''$mod(0,8)'' равно 0, выдав в этом случае '))))' (использование одиночных кавычек в этом случае так же обязательно). Остальная часть анимация контроллируется выражением ''$select()''. | ''$Ifequal()'' корректно обработает остаток от деления 0, что является началом нашей анимации, ведь ''$mod(0,8)'' равно 0, выдав в этом случае '))))' (использование одиночных кавычек в этом случае так же обязательно). Остальная часть анимация контроллируется выражением ''$select()''. | ||
- | <html><pre> | + | <html><pre class="code"> |
- | <font color="#808080">$ifequal($put(foo,$mod(%_time_elapsed_seconds%,8)),0,</br> | + | <font color="#808080">$ifequal($put(foo,$mod(%_time_elapsed_seconds%,8)),0, |
- | '))))',</font></br> | + | '))))',</font> |
- | $select($get(foo),</br> | + | $select($get(foo), |
- | $get_global(cTxtDim)'('$rgb()')))',</br> | + | $get_global(cTxtDim)'('$rgb()')))', |
- | $get_global(cTxtDim)'(('$rgb()'))',</br> | + | $get_global(cTxtDim)'(('$rgb()'))', |
- | $get_global(cTxtDim)'((('$rgb()')',</br> | + | $get_global(cTxtDim)'((('$rgb()')', |
- | $get_global(cTxtDim)'((((',</br> | + | $get_global(cTxtDim)'((((', |
- | ')'$get_global(cTxtDim)'(((',</br> | + | ')'$get_global(cTxtDim)'(((', |
- | '))'$get_global(cTxtDim)'((',</br> | + | '))'$get_global(cTxtDim)'((', |
- | ')))'$get_global(cTxtDim)'('</br> | + | ')))'$get_global(cTxtDim)'(' |
- | )</br> | + | ) |
<font color="#808080">)</font> | <font color="#808080">)</font> | ||
</pre></html> | </pre></html> | ||
Строка 99: | Строка 99: | ||
Теперь включим наше творение в уже существующий скрипт, добавив его в конструкцию ''$if(%isplaying%,,)''. Вот законченный скрипт (и не забудьте добавить новую закрывающую скобку в самом конце скрипта) | Теперь включим наше творение в уже существующий скрипт, добавив его в конструкцию ''$if(%isplaying%,,)''. Вот законченный скрипт (и не забудьте добавить новую закрывающую скобку в самом конце скрипта) | ||
- | <html><pre> | + | <html><pre class="code"> |
$if(%isplaying% | $if(%isplaying% | ||
, | , | ||
Строка 124: | Строка 124: | ||
Конечно же, Вы можете использовать любой понравившийся Вам символ для анимации. Воспользуйтесь стандартной программой Таблица Символов (//Character map//) для того чтобы получить юникодное число, соответствующее этому символу (оно отображается в строке статуса), а затем переведите его из шестнадцатеричного в десятеричный формат, используя инженерный режим Калькулятора. Полученное десятичное число Вы можете использовать в Tagz в функции ''$char()'', например ''$char(32)'' это пробел, а ''$char(9835)'' это маленькая нотка. Только имейте в виду, что набор доступных символов зависит от шрифта, к примеру //Franklin Gothic Medium// предоставляет меньше символов чем //Lucida Sans Unicode//. | Конечно же, Вы можете использовать любой понравившийся Вам символ для анимации. Воспользуйтесь стандартной программой Таблица Символов (//Character map//) для того чтобы получить юникодное число, соответствующее этому символу (оно отображается в строке статуса), а затем переведите его из шестнадцатеричного в десятеричный формат, используя инженерный режим Калькулятора. Полученное десятичное число Вы можете использовать в Tagz в функции ''$char()'', например ''$char(32)'' это пробел, а ''$char(9835)'' это маленькая нотка. Только имейте в виду, что набор доступных символов зависит от шрифта, к примеру //Franklin Gothic Medium// предоставляет меньше символов чем //Lucida Sans Unicode//. | ||
- | |||
===== Результат ===== | ===== Результат ===== | ||
Строка 136: | Строка 135: | ||
В следующей главе мы займемся доработкой мелочей. Но, тем не менее, наш плэйлист уже полностью готов. | В следующей главе мы займемся доработкой мелочей. Но, тем не менее, наш плэйлист уже полностью готов. | ||
+ | |||
+ | ~~DISCUSSION~~ |