Однако, очередная версия Multimedia Builder все-таки вышла. Как говорится, не прошло и полгода, но с поправкой... на два года Ну что ж - спасибо и на этом. Зато, нужно сразу сказать, любители ждали не зря - новая версия откровенно порадовала. Итак, обо всем по порядку.
Версия ММВ 4.9.8 прошла не одну, а две стадии разработки. Сначала вышла версия 4.9.8.7, на которую пришлась основная масса изменений. Она включила в себя и самое большое количество исправлений. После тестирования этой версии разработчики выпустили ещё одну - 4.9.8.13, которая и стала финальной. Эта последня версия включила в себя несколько важных исправлений и добавлений, так что именно она рекомендуется к использованию.
Добавления
Главное новшество ММВ версии 498 - динамическое создание и удаление объектов. Разумеется, созданным объектам можно присваивать действия, которые они будут выполнять при нажатии, отпускании мыши и т.д. Конечно, управление динамически созданными объектами не столь удобно по сравнению со временем разработки, но в некоторых случаях это позволит существенно расширить функциональность программы. Особенно вкупе со следующим нововведением.
Оно заключается в том, что появилась возможность загрузки сценариев из внешних файлов, т.е. мы получили возможность иметь внешние сценарии помимо внутренних. Как это можно использовать? Так, как позволит фантазия. Например, можно было бы создать поддержку скинов для некоторых программ - фактически файлы скинов могли бы иметь обычный текстовый вид. Внутри этих файлов - управляющий сценарий, который подгружается программой и запускается на выпонение. Этот сценарий двигает кнопки, создаёт новые объекты, меняет рисунки и т.д.
Ну конечно, это пример навскидку, а на самом деле можно придумать что-то и посерьёзнее.
Следующее нововведение - возможность изменять размеры окна программы во времени выполнения, как мышью, так и из сценария (доступна новая команда Maximize, а так же IsMaximized для определения состояния окна). Эту опцию можно найти в свойствах проекта.
Также было добавлено 1000 новых таймеров. Помнится, всего три таймера сильно ограничивали наши возможности в предыдущих версиях. Так вот, теперь это в прошлом. Таймеры теперь нумерутся от 1 до 1000 (Timer1..Timer1000), впрочем, старый стиль записи сохранился (TimerA..TimerC), но использовать его в новых проектах не рекомендуется.
Добавлена возможность выполнять код, написанный на скриптовом языке ММВ, прямо из HTML. Теперь не обязательно делать ссылку на сценарий (<a href="script:NameOfScript...), расположенный в проекте, теперь можно вместо вызова сценария вписывать любой необходимый к исполнению код (<a href="scriptcode1:ваш код здесь...).
Также, как утверждает справка, теперь правильно понимаются строковые массивы, переданные плагину через PluginSet и принятые при помощи PluginGet (раньше, видимо, не понимались). Главной же новостью для разработчиков плагинов явилась возможность посылать целые строки кода в скриптовом языке ММВ из плагина в окно программы через broadcast message - можно забыть о не всегда срабатывающих (а в некоторых случаях - никогда) посылках клавиатурных комбинаций.
Добавлены новые константы CBK, такие как CBK_AppFileName и другие, связанные, в основном, с MP3 (об этом будет рассказано ниже).
Исправления
Исправлений много. Самое основное из них - фикс ввода буквы "я" в текстовое поле: до этого она не вводилась.
Также ММВ теперь правильно работает в Windows Vista, что должно порадовать её обладателей.
Ещё разработчики исправили режим "компонент рабочего стола" - в версии 496 эта опция при компиляции конечного файла работала исправно, а в версии 497 вдруг почему-то перестала функционировать.
Другие изменения коснулись команд StrToFile и StrFromFile, которые неправильно работали в некоторых случаях. StrToFile иногда перезаписывала первую строку в файле, а StrFromFile возвращала не одну, а две строки, если файл был очень большой. Кстати, StrFromFile теперь правильно читает файл с единственной строкой внутри.
Изменилось общее поведение поля ввода текста. Например, раньше дробные числа, введённые в эдитбокс, переводились в целые, даже несмотря на включенную опцию "Float". Так же было исправлено поведение едитбокса в случае выделения текста двойным щелчком, если текст был многострочным.
Есть и очень интересные баги, которые также были поправлены в этой версии ММВ. Например, при включенной опции "Allow only one instance" параметры, переданные какому либо из запущенных приложений, передавались всем запущенным приложениям ММВ. А, на мой взгляд, было даже неплохо
В предыдущей версии, если окно имело полноэкранный фон и разворачивалось на весь экран, то после нажатия Esc вместо закрытия приложения исчезал фон. В новой версии это также исправлено.
Исправлено и поведение команды Minimize, запущенной из Page Start, а при включенной опции "Cover Windows Taskbar" фон теперь перерисовывается после смены разрешения экрана или размера панели задач. И ещё - очень важно - теперь программа не вешается благодаря сценариям Page Start\Page End, поскольку исправлен рекурсивный вызов этих сценариев, который имел место ранее.
Ну а главный фикс для разработчиков плагинов - наконец-то исправлено пропадание нажатий клавиш влево-вправо в плагине, так что это решает кучу проблем Лично для меня.
Следующее исправление касается искажения размеров графических примитивов, наложенных поверх объектов windows (таких как список).
Ещё исправлена работа StrDel при удалении несуществующего знака (когда индекс знака, который удалялся, был больше, чем длина строки). А так же несколько других, не менее полезных, исправлений, которые улучшат работу ММВ в целом.
Кроме того, есть несколько исправлений, касающихся исключительно дизайнера. Например, теперь цвет фона для редактора сценария берётся из системных настроек. Исправлен манифест XP редактора и плеера (хотя что нам это даёт?..) CBK_ReturnVal теперь правильно отображается в дизайн-тайме.
Ну и последнее, версия проекта обновлена - предыдущие версии ММВ не откроют такие проекты.
Лажа
Теперь ложка дёгтя. Отныне Медиашанс отрекается от поддержки mp3. Во всяком случае, так заявляет сплеш-экран программы. Если раньше это была ММВ mp3, то теперь это ММВ ogg. Поэтому поменялись и все константы, mp3 в именах констант поменяли на audio - MP3Type = AudioType и т.п. Как бы демонстративно отказались от mp3, так, чтобы все видели.
Однако, воспроизведение mp3 по-прежнему поддерживается за счёт системных кодеков.
Далее, в версиях, предшествующих финальной, команда AudioOpen не позволяла открывать файлы mp3 - их не было в фильтре диалога. Как оказалось, в финальной версии фильтр вернули на место так что и от этого изменения мы ничего не теряем, ибо оно временное.
Но самое досадное изменение в том, что теперь в файлах, скомпилированных этой версией ММВ, нельзя менять поле "комментарий" в ресурсе версии, как это было раньше. Это поле содержит запись "Created with Multimedia Builder, version 4.9.8.13" и ни под каким предлогом не желает изменяться. Поэтому те, кто все-таки настойчиво хотят изменить эту навязчивую запись, должны приобрести у компании специальный ключ (серийный номер), стоимость которого $15 для зарегистрированных пользователей (то есть купивших программу) и $60 для всех остальных.
Если быть точнее, то изменить-то эту запись в редакторе ресурсов можно, но после этого файл программы не запустится. Однако и это ограничение весьма условно