| Если вы хоть раз делали в Captivate проект, отличный от простого перелистывания слайдов, то наверняка знаете, насколько важны переменные. Переменных в Captivate много и они разные. |
Можно выделить 2 основные группы:
- системные переменные;
- пользовательские переменные.
Системные переменные предназначены для управления проектом и получения о нем всей необходимой информации. Пользовательские переменные создаются разработчиками курсов для решения текущих задач. Обращаться к переменным внутри редактора Captivate несложно, а вот как сделать их доступными для внутреннего кода виджета?
Возможности технологии Flash огромны. Их с лихвой хватит для реализации практически любого электронного курса. Но для того, чтобы обеспечить полноценное взаимодействие между Flash-приложением и курсом Captivate обращаться к переменным необходимо. Как?
Для этого рассмотрим несложную задачу: создание интерактивного меню с помощью статичного виджета. Для решения задачи нам потребуется использование следующих системных переменных:
- cpCmndGotoSlide – возвращает номер слайда, который будет просмотрен следующим;
- rdinfoCurrentSlide – возвращает номер текущего слайда;
- rdcmndResume – при значении равном 1 продолжает воспроизведение курса.
Дополнительно мы будем обращаться к пользовательской переменной «temp».
Для того, чтобы не задерживать Ваше внимание, я буду использовать готовые шаблоны курса и кнопок. Вы можете скачать их по ссылке и выполнять все действия параллельно.
Конечный результат, вы можете посмотреть здесь.
Задача решается в четыре действия:
- Добавляем пользовательскую переменную в проект курса;
- Создаем кнопки в Adobe Flash;
- Изменяем код виджета;
- Добавляем виджет в проект курса.
Вот и все. Вопросы и предложения жду в комментариях. Спасибо за внимание.
Между прочим, cpCmndGotoSlide, rdinfoCurrentSlide, rdcmndResume и весь остальной набор управляющих команд (а также доступ к системным и пользовательским переменным Капа и многое другое) доступны любой флэшке, виджеты тут совершенно ни при чём.
Занимает это три строчки, например:
var myRoot:MovieClip = MovieClip(root);var mainmov:MovieClip = MovieClip(myRoot.parent.root);
mainmov.rdcmndResume = 1;
При этом с простыми анимациями работать куда легче, чем с виджетами: например, на них распространяются все функции библиотеки ресурсов Капа, а на виджеты — нет.
С уважением,
Сергей
Сергей, огромное спасибо за комментарий. Обязательно посмотрю Ваш вариант, он действительно может оказаться гораздо удобнее.