КГ: вопрос — ответ

Вообще, с подрастающим поколением всегда интересно общаться. Вот недавно один молодой человек запросил возможность размещения моих материалов на его сайте, посвященном Lua. Захожу на эту страницу, начало такое: «Lua в переводе с испанского — это Луна». Пишу автору: «Вообще-то в Бразилии основной язык — португальский:)», ответ немного огорошил: «Откуда такая инфа?», я и пошутил: «От Жюля Верна». Дальше было совсем смешно: «А это кто?».

На этой всеобъемлюще жизнеутверждающей ноте переходим к вашим письмам, и начнем со звука.

…работаю на звуковой карте, встроенной в материнскую плату… Мультитрековая программа Cubase иногда запускается, но звук не воспроизводит, приходится ее перегружать заново… Такая же проблема появляется, если во время работы в Cubase запускаются другие программы, воспроизводящие звук, — умолкает… Друзья порекомендовали установить драйверы ASIO4all…

Самое смешное, что в данной ситуации ASIO4all помогут, но не по той причине, что они какие-то уникальные и решают все проблемы. Обратите внимание на то устройство, которое у вас установлено по умолчанию как воспроизводящее. Скорее всего, будет указан вывод через Direct Sound и конкретно ваша звуковая карта. Поменяйте последний вариант на «Первичный звуковой драйвер», и ASIO4all не потребуются. Кстати, подобные проблемы есть и в некоторых играх и т.п., не говоря уже о мультитрековых программах.

…у меня к вам «звуковой» вопрос. Слышал, что в некоторых мультитреках есть опция автоматической настройки нормализации микса — вещь, несомненно, полезная, только где она имеется?

Я отвечу за Mackie Traction, где эта функция есть. Кстати, довольно удобная вещь. Чтобы получить к ней доступ, нужно кликнуть указателем мыши на мастер-фэйдер (основной регулятор уровня) программы. В результате откроется соответствующее меню, в котором присутствует кнопка «find normalized level» и связанное с ней выпадающее меню, где вам предлагается отрегулировать нормализацию уровня по пиковым значениям или же RMS для всего микса в целом либо выделенного региона. После того как вы запустите один из выбранных вариантов, стартует автоматическая функция, делающая проверку всех необходимых данных, после чего на автомате выставляется новое значение для мастер-фэйдера. Что касается других программ, в большинстве случаев я подобного не встречал, хотя и не копал так глубоко.

Не совсем понял смысл примитива Null Object в Cinema4D. Для чего он и где используется?

Null Object сам по себе является служебным объектом, который не отображается при визуализации. Применяется он довольно часто для случаев, когда вы используете нацеленные камеры и/или источники света (Target Camera и Target Light), в качестве элементов управления (driver) для Morph и несколько других более узкоспециализированных задач. Также группировка обычных объектов производится в Null Object.

Как сделать меню для сайта в виде выпадающего списка с переключением на другие страницы?

Уф-ф, вариантов реализации может быть очень много. Я вам покажу простейший пример комбобокса на JavaScript. Более сложные вещи делаются по схожей методе. Допустим, у нас есть онлайн-магазин, продающий строительные товары для ремонта в трех позициях: обои, плитка и краски, которые отображаются на соответствующих страницах http://мой_сайт/wallpapers, http://мой_сайт/tile и так далее.

Теперь откройте Блокнот или любой другой текстовый редактор и скопируйте либо введите следующий небольшой фрагмент кода:



Регион: МОСКВА







Теперь сохраните этот файл с расширением *.html и откройте в браузере. В результате вы увидите простейший комбобокс.

В качестве основы мы используем то, что находится в контейнерах option и сохраняется в свойстве selectedIndex, в частности, значение value может содержать в себе абсолютные или относительные гиперссылки (в нашем примере относительные). Далее в функцию JumpMenu передается ссылка на конкретный объект, и мы можем обращаться к его свойствам, а именно выбранной ссылке, хранящейся в переменной selObj.options[selObj.selectedIndex].value. В результате по нажатии на соответствующую надпись в выпадающем списке открывается соответствующая страница.

Начал писать программу эмуляции «однорукого бандита» на флэше. Пока все выглядит уныло и есть много вопросов… И еще вопрос: как защитить swf- файл, чтобы мой «однорукий бандит» не попал на другие сайты? Буду благодарен за быстрый ответ.

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

Алгоритмы же вывода результатов…:). В любом случае должно выигрывать казино, причем такое правило применяется и для других автоматов типа покера или «21». Если вы будете использовать обычный random для всех трех или четырех барабанов, то вероятность выигрышей будет малопредсказуемой. Поэтому необходимо составить более четкий и сложный алгоритм, в рамках которого учитываются вероятности выпадения тех же «ягодок» или «семерок» и так далее. В принципе, игровые автоматы таковые алгоритмы и имеют, но открывать их особенности на широкую публику никто не будет. Другими словами, проще в данном случае разрабатывать все самостоятельным образом.

Что касается защиты, конечно, swf-файлы в стандартном виде могут скопировать и разместить у себя на сайтах заинтересованные в этом лица. Раньше предлагалось сделать защиту путем проверки URL, а именно, вычленением доменного имени сайта, на странице которого воспроизводится flash-ролик, причем сама проверка производится в рамках его (этого ролика) кода. Этот же вариант используется часто и сейчас, только к нему нередко добавляют и другие степени защиты.

Например, в случаях, когда владелец стороннего ресурса получит конкретную ссылку на swf-файл и будет загружать его с вашего сайта и отображать у себя. Во избежание этого момента нередко практикуют периодическое переименование swf-файла с соответствующими изменениями в HTML-странице. Даже я как-то давно писал на заказ подобную программу, которая меняла имя файла и ссылку на него в HTML один раз в сутки. Сделать таковую довольно легко с помощью различных средств и по разным методикам, поэтому углубляться в данную тему большого смысла нет.

Какие библиотеки наиболее актуальны для внедрения в сайт Ajax?

Ситуация довольно изменчива, поскольку постоянно появляется что-то новое и интересное. Но в целом, можем дать небольшой список.

jQuery (www.jquery.com) — на сегодня, пожалуй, одна из самых популярных библиотек, по которой есть много практической документации, в том числе и русскоязычной. В рамках ее использования вы можете включать в страницу множество интерактивных элементов.

Dojo (www.dojotoolkit.org) — одна из самых крупных библиотек поддержки Ajax, состоящая из множества небольших.

Mochikit (www.mochikit.com) — Ajax-библиотека JavaScript, сделанная в стиле языков Python и Objective-C.

Prototype (www.prototypejs.com) — довольно перспективная и серьезная библиотека, которая изначально выросла из части платформы разработки веб- приложений на Ruby on Rails.

MooTools (www.mootools.net) — довольно интересное решение, подразумевающее модульную систему загрузки, в результате чего можно конфигурировать свою комплектацию из компонент библиотеки.

В целом и гранды рынка не остаются в стороне. Например, как только все начали активно говорить об Ajax, большую популярность приобрела библиотека компонент графического интерфейса YUI (developer.yahoo.com/yui) — Yahoo! User Interface, которая хорошо раскрутилась в рамках сообщества пользователей сервисов от Yahoo!

Кристофер http://itcs.3dn.ru


Компьютерная газета. Статья была опубликована в номере 34 за 2011 год в рубрике soft

©1997-2024 Компьютерная газета