Статьи

Создайте профессиональное фото портфолио на основе Moto CMS

Онлайн-портфолио имеет большое значение для любого современного художника, фотографа или даже музыканта. Это представляет их профессионализм. Сегодня мы рассмотрим создание оригинального, стильного портфолио фотографий на основе Moto CMS ; усовершенствованная система управления Flash-контентом

Мы будем использовать автономную версию Moto CMS, состоящую из набора утилит, компонентов и встроенных образцов конструкций, выполненных в чистом стиле. На самом деле, этот готовый шаблон не понадобится, так как мы собираемся создать веб-сайт портфолио с нуля.

Этот учебник охватывает следующие аспекты:

  • Создание контента для владельцев.
  • Создание слотов (кнопка Закрыть, простая кнопка слота).
  • Модули (музыкальный плеер, галерея изображений).
  • Редактирование сайта preloader.
  • Создание страниц сайта и контента.

Мы также сосредоточимся на том, что отличается в Moto CMS, представляя его функции и функциональность.


  • Adobe Photoshop;
  • Adobe Flash CS3;
  • Автономная версия Moto CMS s (бесплатная пробная версия);
  • Дизайн сайта в формате .PSD.

Домашняя страница веб-сайта:

мото cms - флеш портфолио

Нажмите на демонстрационную ссылку в верхней части страницы и посмотрите окончательный результат, к которому мы будем стремиться, любезно предоставленный командой Moto CMS (логин / пароль: admin).


С самого начала мы должны загрузить отдельную версию Moto Flash CMS. Чтобы повторить шаги этого урока и почувствовать функции Moto CMS, вам будет достаточно пробной версии.

Итак, чтобы загрузить пробную версию, перейдите по этой ссылке .


Вот краткий обзор файлов и папок Moto CMS:

  • Компоненты. Эта папка содержит компонент MXP, запускаемый Adobe Extension Manager.
  • Панель управления. Все файлы панели управления находятся здесь.
  • Docs. Эта папка содержит документацию по API.
  • Примеры. Эта папка содержит 4 примера готовых Flash-сайтов, начиная с простого и заканчивая сложным веб-сайтом с модулем галереи, новостным компонентом, MP3 и видеоплеером, контактами из и т. Д.
  • Шаблоны. Существует 5 шаблонов сайтов, которые используются для создания сайтов на базе Moto CMS. Каждый шаблон имеет необходимый набор файлов и отличается по своей структуре. В этом уроке мы будем использовать один из этих шаблонов, в частности шаблон № 1, в качестве основы для создания нашего веб-сайта портфолио.
  • Файл Readme, в котором описаны первые шаги по работе с CMS.

Наш следующий шаг — запустить шаблон сайта № 1, на основе которого мы собираемся создать наш сайт-портфолио. Для этого нам понадобится локальный веб-сервер. Я буду использовать WampServer , среду веб-разработки Windows. Это позволяет создавать веб-приложения с Apache, PHP и базой данных MySQL.

Чтобы запустить шаблон веб-сайта № 1, просто загрузите следующие папки из каталога \ templates \ на локальный сервер: template_01 и controlPanel / admin .

После этого вы можете получить доступ к панели управления Moto CMS, указав правильный путь в адресной строке и добавив в конце «/ admin».

панель управления мото

Примечание: в настоящее время вы не сможете просматривать свой веб-сайт, так как на нем еще нет страниц. Ошибка 404 будет показано.

панель управления мото

Все, что нам нужно сделать, это отредактировать ширину и высоту сайта, установить минимальную ширину и высоту сайта и указать цвет фона.

Размер нашего дизайна 980х800 пикселей. Чтобы изменить его размер на большом экране, нам нужно указать «100%» для ширины и высоты сайта. И чтобы сделать его видимым при небольшом разрешении экрана, мы должны указать минимальную ширину и высоту сайта (это заставит полосы прокрутки появляться). Цвет фона черный ( #000000 ).

01
02
03
04
05
06
07
08
09
10
11
12
13
<item name=»ALLOW_FULL_SCREEN»><![CDATA[true]]></item>
 
<item name=»WEBSITE_WIDTH»><![CDATA[100%]]></item>
 
<item name=»WEBSITE_HEIGHT»><![CDATA[100%]]></item>
 
<item name=»WEBSITE_MIN_WIDTH»><![CDATA[980]]></item>
 
<item name=»WEBSITE_MIN_HEIGHT»><![CDATA[800]]></item>
 
<item name=»FLASH_PLAYER_VERSION_REQUIRED»><![CDATA[9.0.23]]></item>
 
<item name=»BACKGROUND_COLOR»><![CDATA[#000000]]></item>

Теперь нам нужно открыть CSS-файл Style и указать цвет фона (черный). Все остальное будет редактироваться через панель управления Moto.


Откройте файл moto.flp (Flash Project) в Adobe Flash CS3. На панели «Проект» вы можете видеть два файла: moto.fla и website.fla. Установите файл moto.fla как файл по умолчанию и скомпилируйте оба файла, нажав кнопку «Тестовый проект».

панель управления мото

После этого откройте файл moto.fla и создайте предварительный загрузчик для сайта. Прелоадер сайта может представлять собой простой фрагмент ролика, состоящий из 100 кадров.

панель управления мото

На панели «Действия» этого мувиклипа мы пишем « stop(); » для первого кадра. Затем мы используем остальные кадры для анимации прелоадера, как нам хочется.

Мы также пишем « stop(); » в действиях первого кадра основной временной шкалы FLA.

Не забудьте указать размеры сайта (минимальная ширина и высота) в свойствах файла moto.fla.

панель управления мото

Наш следующий шаг — создать привлекательную анимацию исчезновения прелоадера. В последнем кадре мы должны запустить сайт, активировав showWebsite() « showWebsite() ».

панель управления мото

Откройте файл website.fla и обновите предварительный загрузчик.


Откройте медиатеку MotoCMS («Предпочтения»> «Медиатека») и вместе с другими необходимыми изображениями (домашняя страница, страницы галереи и страницы «О проекте», плоскость содержимого) загрузите фоновое изображение с помощью кнопки «Загрузить файлы».

панель управления мото

После этого вернитесь на панель управления и вставьте фоновое изображение с помощью кнопки «Добавить новое изображение». Перетащите изображение, чтобы отцентрировать его.

панель управления мото

Чтобы следовать дизайну, мы должны загрузить новый шрифт — Myriad Pro Ultra-Bold. Для этого перейдите в «Настройки» и выберите «Диспетчер шрифтов».

панель управления мото

Fonts Manager позволяет пользователям управлять шрифтами сайта, которые хранятся в виде SWF-файлов и могут быть загружены во время выполнения.

панель управления мото

Перед загрузкой любого шрифта мы должны сначала преобразовать его в формат SWF. Для этого мы будем использовать Online Font Creator — удобное онлайн-приложение, разработанное командой Moto CMS, которое позволяет быстро конвертировать файлы .ttf и .otf в .swf. Все, что нам нужно сделать, это выбрать нужный файл шрифта с расширением .ttf или .otf, добавить его в Online Font Creator, нажать кнопку «Создать шрифты» и загрузить готовый файл * .swf, который мы затем добавим в наше портфолио. ,

создатель шрифтов moto

Как только новый шрифт загружен, вы можете создать заголовок веб-сайта и строку тега, используя Text Tool и применяя необходимый шрифт. Для создания тега мы используем шрифт Tahoma, размер: 10, цвет: # 727272. После этого измените заголовок сайта и строку тега в соответствии с дизайном .PSD.

создатель шрифтов moto

Мы временно разместим изображение галереи на главной странице. для этого выберите изображение в Media Libarry и добавьте его на страницу, нажав кнопку «Добавить новое изображение» слева. Отрегулируйте положение изображения в соответствии с дизайном главной страницы.

панель управления мото

С помощью инструмента «Форма» создайте серый узкий прямоугольник, а затем с помощью инструмента «Текст» создайте на нем кнопки меню. Отрегулируйте все в соответствии с дизайном главной страницы. Должен признать, это самая простая реализация меню. Moto CMS предоставляет специальный виджет меню, на основе которого вы можете создать свое собственное меню.

Сохраните все изменения и просмотрите дизайн сайта, нажав кнопку «Просмотр».


Примечание. Держатели контента — это видеоклипы в website.fla, куда контент можно добавлять динамически. Они могут быть 4 типов: 1) держатель контента сайта; 2) макет содержания владельца; 3) владелец содержимого страницы; 4) держатель всплывающего контента.

Шаблон веб-сайта № 1, с которым мы работаем, по умолчанию имеет два держателя содержимого: держатель содержимого веб-сайта и держатель содержимого страницы. Если мы откроем файл website.fla, мы увидим их:

панель управления мото

Эти держатели содержимого описаны в файле Structure.xml. Убедитесь, что ширина составляет 980 пикселей, а высота — 800 пикселей.

Владелец контента сайта:

1
2
3
4
5
<contentHolders>
    <holder id=»1″ type=»website» x=»0″ y=»0″ width=»980″ height=»800″ locked=»false» depth=»10″>
        <name><![CDATA[On The Entire Website]]></name>
    </holder>
</contentHolders>

Владелец содержимого страницы:

1
2
3
4
5
<contentHolders>
    <holder id=»2″ type=»page» x=»0″ y=»0″ width=»980″ height=»800″ locked=»false» depth=»20″>
        <name><![CDATA[Content]]></name>
    </holder>
</contentHolders>

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

панель управления мото

Нажав на кнопку «Создать новую страницу», вы сможете создать пустую страницу.

панель управления мото

После этого вернитесь на домашнюю страницу и свяжите кнопки меню с нужными страницами. Просто выделите текст кнопки меню и щелкните значок ссылки справа, чтобы открыть редактор ссылок. В нашем случае кнопка меню «Портфолио» ссылается на домашнюю страницу, а кнопка «Обо мне» — на страницу «О нас».

панель управления мото

Добавьте плоскость содержимого (которая уже была загружена в библиотеку мультимедиа) на страницу «О программе» с помощью кнопки «Добавить новое изображение» и отцентрируйте ее в соответствии с дизайном.

панель управления мото

Добавьте содержимое на страницу «О программе» с помощью инструмента «Текст». Встроенный редактор WYSIWYG визуализирует все, что вы создаете, поэтому применение форматирования к тексту не вызовет затруднений. Также легко можно добавить ссылку на почту: просто откройте редактор ссылок и укажите адрес электронной почты.

панель управления мото

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

панель управления мото

Вы могли заметить, что при предварительном просмотре веб-сайта и переходе с одной страницы на другую появляются белые предварительные загрузчики круглых изображений. Чтобы настроить их, откройте файл website.fla и перейдите в библиотеку. Щелкните правой кнопкой мыши на preloader и выберите Properties.

панель управления мото

В окне «Свойства символа» вы можете щелкнуть значок «Изменить базовый класс», а затем анимировать предварительный загрузчик любым удобным для вас способом. Но в нашем случае оставим это поле пустым и удалим графическое изображение предварительного загрузчика.

панель управления мото

Теперь мы подошли к самой интересной части нашего урока: анимация сайта. Как вы можете видеть, на данный момент сайт выглядит статичным, поскольку владельцы контента вообще не анимированы. Итак, наш следующий шаг — анимировать владельцев контента по умолчанию и добавить новых для улучшения анимации сайта.

Держатели контента по умолчанию могут быть легко анимированы на временной шкале. Для этого откройте файл website.fla и создайте постепенную анимацию для каждого владельца.

Сначала давайте анимируем основной контейнер всего сайта. Он лежит на слое website_holder_1 . Мы делаем простую анимацию с прозрачностью, но все, что мы делаем, будет украшать ее внешний вид. Мы создаем второй ключевой кадр на слое, устанавливаем альфа 0% для первого ключевого кадра (сделаем его прозрачным), создаем анимацию движения от первого ключевого кадра ко второму и добавляем замедление.

панель управления мото

Давайте создадим ту же анимацию содержимого страницы (слой page_1_holder_2), но появимся чуть позже.

панель управления мото

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

панель управления мото

Когда мы компилируем наш проект и загружаем сайт, мы видим, что каждый элемент уже появляется с анимацией. Но при переходе от страницы к странице анимация все еще отсутствует, только необычное мигание. За это отвечает вторая часть графика.

панель управления мото

Таким образом, мы делаем анимацию сокрытия и показа держателя там.

панель управления мото

Поскольку текстовый шрифт является системным шрифтом, мы должны изменить режим наложения с « Обычный» на « Слой» для всех экземпляров MovieClip на слоях-держателях.

панель управления мото

Для хорошего Flash-сайта такого внешнего вида недостаточно, и лучше сделать отдельную анимацию для разных частей, например, для верхней части (выделение желтого цвета на изображении ниже), снизу (выделение зеленым цветом) и содержимого (выделение красным).

панель управления мото

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

панель управления мото

Верхняя зона имеет следующие размеры: x = 0, y = 0, ширина = 980, высота = 120.

панель управления мото

Нижняя зона: х = 0, у = 765, ширина = 980, высота = 35.

панель управления мото

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

После определения размеров держателей мы должны открыть файл structure.xml и добавить новые контейнеры (на уровне веб-сайта), указав их координаты, ширину, высоту и глубину.

01
02
03
04
05
06
07
08
09
10
11
<contentHolders>
    <holder id=»1″ type=»website» x=»0″ y=»0″ width=»980″ height=»800″ locked=»false» depth=»10″>
        <name><![CDATA[On The Entire Website]]></name>
    </holder>
            <holder id=»3″ type=»website» x=»0″ y=»0″ width=»980″ height=»120″ locked=»false» depth=»12″>
        <name><![CDATA[Top Holder]]></name>
    </holder>
            <holder id=»4″ type=»website» x=»0″ y=»765″ width=»980″ height=»35″ locked=»false» depth=»14″>
        <name><![CDATA[Bottom Holder]]></name>
    </holder>
</contentHolders>

После добавления контейнеров в файл XML мы должны создать их в файле website.fla. Итак, мы открываем website.fla и создаем новые слои для наших контейнеров. Порядок слоев должен соответствовать значениям глубины, которые мы установили в файле XML.

панель управления мото

Мы можем скопировать пустой мувиклип из слоя website_holder_1 и вставить его в website_holder_3 и website_holder_4.

панель управления мото

Мы устанавливаем те же координаты MovieClips, которые указаны в Structure.xml.

Для 3-го держателя: X = 0, Y = 0;

Для 4-го держателя: X = 0, Y = 765.

Когда мы скопировали MovieClips, старые имена остались. Мы меняем имена экземпляров в соответствии с их идентификационными номерами, чтобы их было легко найти.

панель управления мото

То же самое должно быть сделано для владельца сайта 4.

панель управления мото

На временной шкале переместите первые ключевые кадры для держателей 3 и 4 вперед, чтобы они начали появляться позже, чем весь держатель веб-сайта. Затем мы создаем вторые ключевые кадры и анимацию движения. Первые ключевые кадры содержат начальную позицию держателей, а вторые ключевые кадры содержат конечную позицию держателей на сайте. Верхний держатель появится в верхней части экрана, поэтому мы перемещаем его вверх в первом ключевом кадре; нижний держатель — снизу, поэтому мы перемещаем его вниз в первом ключевом кадре. И мы также добавляем ослабления к анимации движения.

Вы должны получить что-то вроде этого:

панель управления мото

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

1
2
Moto.getInstance().getWebsiteHolder(3, website_holder_3);
Moto.getInstance().getWebsiteHolder(4, website_holder_4);

Затем скомпилируйте сайт и обновите панель управления.

Если вы выберете какой-либо объект, вы увидите, что раскрывающееся меню «Размещение» было расширено еще двумя держателями: « Верхний держатель» и « Нижний держатель» .

панель управления мото

Заголовок веб-сайта с лозунгом должен быть назначен держателю верхнего содержимого, а меню веб-сайта с серым прямоугольником — держателю нижнего содержимого.

Теперь желательно, чтобы на большом экране нижний держатель прилипал к нижней части экрана. Чтобы реализовать это, мы должны переместить анимацию нижнего держателя в другой фрагмент ролика, потому что, как вы знаете, мы не можем перемещать анимационные ролики программно (анимация не будет работать). Давайте назовем этот видеоклип website_holder_4_c .

После этого перейдите на главную сцену, щелкните по первым ключевым кадрам владельца сайта 3 и 4 и отредактируйте код.

01
02
03
04
05
06
07
08
09
10
11
Moto.getInstance().getWebsiteHolder(3, website_holder_3);
Moto.getInstance().getWebsiteHolder(4, website_holder_4_c.website_holder_4);
 
// Stage resize handler
stage.addEventListener(Event.RESIZE, resizeHandler);
resizeHandler(null);
 
function resizeHandler(event:Event):void
{
    website_holder_4_c.y = Math.max(765, Math.round(stage.stageHeight — 35));
}

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


Для того чтобы содержимое веб-сайта отображалось выше, мы должны анимировать владельца содержимого страницы так же, как мы делали для верхних и нижних держателей.


Перед созданием новой страницы нам нужно обновить шаблон страницы. Давайте возьмем дизайн страницы About в качестве шаблона. Щелкните правой кнопкой мыши на странице «О программе» и выберите «Обновить шаблон страницы».

панель управления мото

После обновления шаблона страницы нажмите кнопку «Создать новую страницу», укажите имя страницы, заголовок и URL-адрес, как показано на снимке экрана ниже.

панель управления мото

Теперь страница контактов готова. Отредактируйте его содержимое с помощью удобного редактора WYSIWYG и свяжите его с кнопкой меню.


В Moto Flash CMS слоты играют роль анимированных объектов. Слоты могут содержать множество пользовательских функций, которыми можно управлять прямо из панели управления.

Сначала мы попытаемся создать простой слот, а затем усовершенствовать его.

Давайте начнем с кнопки «Закрыть», вставленной в виде картинки на веб-сайт, и добавим к ней некоторые эффекты ролловера / свертывания. Ему назначено действие «Перейти на страницу»> «Домой».

панель управления мото

Анимировать кнопку «Закрыть» нетрудно, так как мы собираемся реализовать ее через слот. Далее, давайте создадим слот в файле website.fla. Для этого импортируйте изображение кнопки «Закрыть» в библиотеку. В разделе «Слоты» мы должны создать новый символ в виде мувиклипа с именем CloseButtonSlot.

Установите класс как CloseButtonSlot . Нет необходимости создавать новый класс, достаточно просто наследовать класс AbstractMotoSlot. Итак, просто скопируйте следующее: com.moto.template.shell.view.components.AbstractMotoSlot и вставьте его в поле базового класса.

панель управления мото

Затем мы добавляем изображение кнопки «Закрыть» на сцену (мувиклип CloseButtonSlot должен быть открыт) и преобразуем его в фрагмент ролика с именем CloseButtonIcon. Поскольку мы унаследовали наш слот от класса AbstractMotoSlot, он дает нам базовую анимацию. Но то, что мы собираемся сделать сейчас, — это создать привлекательный эффект ролловера / свертывания.

Итак, наш следующий шаг — создать новый слой и сделать ключевые кадры, в которые нужно поместить stop(); код. Мы даем базовые метки кадров «над» (между первым и вторым стоп-кадрами) и «вне» (между вторым и третьим ключевыми кадрами остановки) — см. Скриншот:

панель управления мото

Мы создаем одинаковые ключевые кадры и создаем анимацию движения на слое с помощью нашего мувиклипа.

Например, наша кнопка «Закрыть» будет вращаться по часовой стрелке при переворачивании и против часовой стрелки несколько раз при разворачивании.

панель управления мото

Давайте добавим яркости во время вращения и ослабления анимации движения.

После создания анимации мы компилируем website.fla с нашим новым слотом (Ctrl + Enter).

Чтобы работать со слотом через Moto CMS, нужно указать его параметры в файле structure.xml:

  • librarySymbolLinkage=" " — имя экспорта мувиклипа слота (имя класса).
  • animated="true" — атрибут, который указывает, является ли слот анимированным или нет.
  • resizable="false" — указывает, есть ли логика для изменения размера внутри слота или нет.
  • locked="false" — указывает, должен ли слот отображаться на панели для добавления или нет.
  • <name><![CDATA[]]></name> — название слота в панели администратора.
  • <properties/> — свойства слота, которые расширяют функциональность; мы не будем использовать это в этом примере.
  • <template/> — значения по умолчанию для всех свойств слота; необходимо добавить атрибут alpha="" — прозрачность слота, от 0 до 1.

В нашем случае это будет:

1
2
3
4
5
<slot id=»1″ librarySymbolLinkage=»CloseButtonSlot» animated=»true» resizable=»false» locked=»false»>
    <name><![CDATA[Close Button]]></name>
    <properties/>
    <template alpha=»1″ />
</slot>

После этого зайдите в панель управления и откройте любую страницу. В разделе Слоты вы увидите доступные слоты. Выберите слот кнопки «Закрыть» и поместите его на страницу вместо изображения кнопки «Закрыть».

Слева находится панель «Объект слота», когда слот выбран. Перейдите в раздел «Действия», установите флажок «Включить действие щелчка» и выберите «Перейти на страницу»> «Домой».

Затем скопируйте слот и вставьте его на другие страницы, где нужна кнопка «Закрыть». Сохраните изменения и проверьте результат.


Расширенный слот в нашем случае — это слот с динамически меняющимися параметрами. Давайте создадим слот для кнопок с некоторыми переменными параметрами. Для этого откройте файл website.fla и создайте новый символ в виде мувиклипа с именем SimpleButtonSlot. Базовый класс такой же, как на шаге 17.

Базовый класс: com.moto.template.shell.view.components.AbstractMotoSlot .

Затем добавьте текстовое поле с именем «Метка» и плоскость к этой кнопке. Преобразуйте самолет в мувиклип с именем «ButtonLabelPlane».

Для нашего удобства давайте превратим Label в мувиклип и назовем его «labelHolder», а затем преобразуем ButtonLabelPlane в другой мувиклип и назовем «planeHolder».

Откройте файл structure.xml и добавьте новый слот с 2 свойствами. Просто скопируйте и вставьте следующий код в раздел слотов:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
<slot id=»2″ librarySymbolLinkage=»SimpleButtonSlot» animated=»true» resizable=»true» locked=»false»>
    <name><![CDATA[Simple Button]]></name>
        <properties>
           <property id=»1″ type=»htmlText»>
              <name><![CDATA[Label]]></name>
           </property>
           <property id=»2″ type=»color»>
              <name><![CDATA[Color]]></name>
           </property>
        </properties/>
        <template alpha=»1″>
           <properties>
              <item propertyType=»1″>
              <item propertyType=»2″>
           </properties>
        </template>
</slot>

Для обработки этих двух свойств базового класса недостаточно. Вот почему нам нужно создать новый класс. Поэтому создайте новый файл ActionScript с именем SimpleButtonSlot.as в папке src / slots и добавьте в него этот код.

01
02
03
04
05
06
07
08
09
10
11
12
package slots
{
        import com.moto.template.shell.view.components.AbstractMotoSlot;
 
        public class SimpleButtonSlot extends AbstractMotoSlot
        {
                public function SimpleButtonSlot()
                {
 
                }
        }
}

Вернитесь к фрагменту ролика SimpleButtonSlot и укажите другой базовый класс:
slots.SimpleButtonSlot .

После этого мы должны импортировать мувиклип туда:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
package slots
{
        import com.moto.template.shell.view.components.AbstractMotoSlot;
        import flash.display.MovieClip;
 
                public class SimpleButtonSlot extends AbstractMotoSlot
                {
                         public function SimpleButtonSlot()
                         {
 
                         }
 
                }
}

Чтобы обработать оба свойства, мы должны переопределить функцию updateProperty() . В следующем фрагменте кода появится PropertyVO со своим значением, типом, параметром и функцией getParameter() . Мы используем структуру «switch», так как у нас есть два свойства: htmlText и color .

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package slots
{
    import com.moto.template.shell.model.vo.PropertyVO;
    import com.moto.template.shell.view.components.AbstractMotoSlot;
    import flash.text.TextField;
         
    import flash.display.MovieClip;
 
    public class SimpleButtonSlot extends AbstractMotoSlot
    {
        public function SimpleButtonSlot()
        {
             
        }
         
        override public function updateProperty(propertyVO:PropertyVO):void
        {
            switch(propertyVO.propertyType)
            {
                case 1:
                {
                    // htmlText
                                        labelHolder.label
                    break;
                }
                 
                case 2:
                {
                    // color
                    break;
                }
            }
        }
    }
}

Теперь давайте опишем наш TextField ( labelHolder ) и плоскость ( planeHolder ).

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package slots
{
    import com.moto.template.common.utils.MotoUtils;
    import com.moto.template.shell.model.vo.PropertyVO;
    import com.moto.template.shell.view.components.AbstractMotoSlot;
    import flash.text.TextField;
         
    import flash.display.MovieClip;
 
    public class SimpleButtonSlot extends AbstractMotoSlot
    {
                private var _label:TextField;
                private var _plane:MovieClip;
         
        public function SimpleButtonSlot()
        {
                _label = labelHolder.label;
                        _plane = planeHolder.plane;
        }
         
        override public function updateProperty(propertyVO:PropertyVO):void
        {
            switch(propertyVO.propertyType)
            {
                case 1:
                {
                    // htmlText
                    _label.htmlText = propertyVO.value;
                    _label.embedFonts = MotoUtils.convertToBoolean(propertyVO.getParameter(«embedFonts»));
                    break;
                }
                 
                case 2:
                {
                    // color
                    MotoUtils.setColor(_plane, uint(propertyVO.value));
                    break;
                }
            }
        }
    }
}

После этого нам нужно добавить функцию autosize:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package slots
{
    import com.moto.template.common.utils.MotoUtils;
    import com.moto.template.shell.model.vo.PropertyVO;
    import com.moto.template.shell.view.components.AbstractMotoSlot;
        import flash.text.TextField;
        import flash.text.TextFieldAutoSize;
         
    import flash.display.MovieClip;
 
    public class SimpleButtonSlot extends AbstractMotoSlot
    {
                private var _label:TextField;
                private var _plane:MovieClip;
         
        public function SimpleButtonSlot()
        {
                _label = labelHolder.label;
                        _plane = planeHolder.plane;
                              
                        _label.autoSize = TextFieldAutoSize.LEFT;
        }
         
        override public function updateProperty(propertyVO:PropertyVO):void
        {
            switch(propertyVO.propertyType)
            {
                case 1:
                {
                    // htmlText
                    _label.htmlText = propertyVO.value;
                    _label.embedFonts = MotoUtils.convertToBoolean(propertyVO.getParameter(«embedFonts»));
                    break;
                }
                 
                case 2:
                {
                    // color
                    MotoUtils.setColor(_plane, uint(propertyVO.value));
                    break;
                }
            }
        }
    }
}

Поскольку размер нашего слота можно изменять, давайте отцентрируем текст в плоскости. Для этого мы должны переопределить setSize() . Также нам нужно изменить размер плоскости в соответствии с шириной текста метки. Нам нужно вызвать метод updateProperty() функции updateProperty() при обновлении свойства метки.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package slots
{
    import com.moto.template.common.utils.MotoUtils;
    import com.moto.template.shell.model.vo.PropertyVO;
    import com.moto.template.shell.view.components.AbstractMotoSlot;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
         
    import flash.display.MovieClip;
 
    public class SimpleButtonSlot extends AbstractMotoSlot
    {
                private var _label:TextField;
                private var _plane:MovieClip;
         
        public function SimpleButtonSlot()
        {
                _label = labelHolder.label;
                        _plane = planeHolder.plane;
                              
                        _label.autoSize = TextFieldAutoSize.LEFT;
        }
         
        override public function updateProperty(propertyVO:PropertyVO):void
        {
            switch(propertyVO.propertyType)
            {
                case 1:
                {
                    // htmlText
                    _label.htmlText = propertyVO.value;
                    _label.embedFonts = MotoUtils.convertToBoolean(propertyVO.getParameter(«embedFonts»));
                                        setSize(_plane.width, _plane.height);
                    break;
                }
                 
                case 2:
                {
                    // color
                    MotoUtils.setColor(_plane, uint(propertyVO.value));
                    break;
                }
            }
        }
 
                 
        override public function setSize(newWidth:Number, newHeight:Number):void
        {
                    _plane.width = newWidth;
            _plane.height = newHeight;
             
            _label.x = Math.round((newWidth — _label.textWidth) / 2);
            _label.y = Math.round((newHeight — _label.textHeight) / 2);
        }
    }
}

Скомпилируйте сайт, чтобы сохранить изменения.

Откройте файл website.fla, перейдите на главную сцену и затем ролик SimpleButtonSlot. На Layer3 создайте три ключевых кадра и вставьте stop(); код. Мы даем базовые метки кадров «над» (между первым и вторым стоп-кадрами) и «вне» (между вторым и третьим ключевыми кадрами остановки).

Давайте оживим planeHolder (то есть фон). Например, он может осветиться при наведении на него курсора. На временной шкале это может выглядеть следующим образом:

панель управления мото

Скомпилируйте сайт и просмотрите изменения. Теперь мы можем легко работать с объектом слота. Используя панель управления слотом (справа), мы можем редактировать свойства слота и применять к нему различные эффекты.

И вот хороший пример того, как мы можем использовать этот слот на нашем сайте. Я реализовал это на странице About вместо простого адреса электронной почты:

панель управления мото

Примечание. Модули — это анимированные элементы, полученные из слотов, которые доступны в библиотеке или могут быть загружены из внешнего SWF-файла. Они обладают набором свойств, который позволяет пользователям легко ими управлять. По сравнению со слотами, модули имеют большое преимущество: каждый модуль имеет собственную панель управления. Moto Flash CMS предоставляет пять типов панелей управления для создания собственных пользовательских модулей. Это означает, что разработчики Flash должны создавать только внешний интерфейс; бэкэнд уже был создан разработчиками Moto CMS.

Например, шаблон № 1, который мы здесь используем, по умолчанию имеет встроенный модуль Media player. Вы можете легко добавить этот модуль на сцену и открыть его панель управления, дважды щелкнув по нему.

панель управления мото

Давайте создадим простой музыкальный проигрыватель с элементами управления вкл / выкл. Откройте файл website.fla и создайте новый мувиклип под названием «MusicPlayerModule», указав новый базовый класс: modules.MusicPlayerModule . Затем добавьте значок проигрывателя на сцену и преобразуйте его в мувиклип с именем «musicPlayerIcon».

Откройте файл structure.xml и добавьте новый модуль. Добавьте следующий код в раздел модулей:

01
02
03
04
05
06
07
08
09
10
11
12
13
<module id=»2″ type=»mp3Player» librarySymbolLinkage=»MusicPlayerModule» external=»false» resizable=»false» icon=»images/modules/musicplayer_icon.png» smallIcon=»images/modules/mp3_small_icon.png»>
            <name><![CDATA[Music Player]]></name>
            <properties/>
            <template alpha=»1″>
                <properties/>
                <data>
                    <playlist isDataProvider=»true»/>
                    <autoLoadAndPlay>true</autoLoadAndPlay>
                    <repeat>true</repeat>
                    <defaultVolume>0.3</defaultVolume>
                </data>
            </template>
        </module>

Создайте новый файл Actionscript с именем «MusicPlayerModule» в папке src / modules и добавьте этот код, чтобы создать пустую оболочку для класса:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package modules
{
    import com.moto.template.modules.mediaPlayer.SimpleMusicPlayerModule;
        import flash.events.Event;
 
        import flash.display.MovieClip;
 
        public class MusicPlayerModule extends SimpleMusicPlayerModule
    {
        private var _icon:MusicPlayerModule;
  
                public function MotoWebsite()
        {
            _icon = icon;
 
                        addEventListener(INITIALIZATION_ERROR, moduleInitializationErrorHandler);
                }
 
                private function moduleInitializationErrorHandler(event:Event):void
        {
            //
        }
  
                override protected function getCurrentTrackURL():String
                {
            if (getCurrentTrackData())
                return pathPrefix + getCurrentTrackData().getPropertyValueByID(1);
            else
                return «»;
                }
        }
}

Скомпилируйте сайт и перезагрузите панель управления Moto. Перейдите к модулям и перетащите музыкальный проигрыватель на сцену.

панель управления мото

Дважды щелкните музыкальный проигрыватель, чтобы открыть его панель управления и загрузить несколько треков (используя кнопку «Добавить новый элемент»). Теперь мы можем слышать музыку, но пока не можем ее остановить.

панель управления мото

Давайте продолжим. Перейдите к мувиклипу MusicPlayerModule и создайте фигуру. Преобразуйте его в мувиклип, который называется «кнопка». Мы будем использовать его для обработки событий щелчка, чтобы включить / выключить звук.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package modules
{
    import com.moto.template.modules.mediaPlayer.SimpleMusicPlayerModule;
        import flash.events.Event;
        import flash.events.MouseEvent;
 
        import flash.display.MovieClip;
 
        public class MusicPlayerModule extends SimpleMusicPlayerModule
    {
        private var _icon:MovieClip;
                private var _button:MovieClip;
  
                public function MusicPlayerModule()
        {
            _icon = icon;
                        _button = button;
             
            _button.buttonMode = true;
            _button.addEventListener(MouseEvent.CLICK, iconClickHandler);
 
                        addEventListener(INITIALIZATION_ERROR, moduleInitializationErrorHandler);
                }
 
                private function moduleInitializationErrorHandler(event:Event):void
        {
            //
        }
 
                private function iconClickHandler(event:MouseEvent):void
        {
            switchVolume();
             
            if (_muteSound)
                _icon.alpha = 0.3;
            else
                _icon.alpha = 1;
        }
  
                override protected function getCurrentTrackURL():String
                {
            if (getCurrentTrackData())
                return pathPrefix + getCurrentTrackData().getPropertyValueByID(1);
            else
                return «»;
                }
        }
}

Поскольку модуль музыкального проигрывателя использует логику «общего объекта» и запоминает, включен ли звук или нет, то при запуске модуля он должен проверить, воспроизводилась ли музыка или нет.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package modules
{
    import com.moto.template.modules.mediaPlayer.SimpleMusicPlayerModule;
    import com.moto.template.shell.model.vo.MotoObjectVO;
    import flash.events.Event;
    import flash.events.MouseEvent;
 
    import flash.display.MovieClip;
 
    public class MusicPlayerModule extends SimpleMusicPlayerModule
    {
        private var _icon:MovieClip;
        private var _button:MovieClip;
         
        public function MusicPlayerModule()
        {
            _icon = icon;
            _button = button;
             
            _button.buttonMode = true;
            _button.addEventListener(MouseEvent.CLICK, iconClickHandler);
             
            addEventListener(INITIALIZATION_COMPLETE, moduleInitializationCompleteHandler);
            addEventListener(INITIALIZATION_ERROR, moduleInitializationErrorHandler);
        }
         
        private function moduleInitializationErrorHandler(event:Event):void
        {
            //
        }
         
        private function iconClickHandler(event:MouseEvent):void
        {
            switchVolume();
             
            if (_muteSound)
                _icon.alpha = 0.3;
            else
                _icon.alpha = 1;
        }
         
        override protected function getCurrentTrackURL():String
        {
            if (getCurrentTrackData())
                return pathPrefix + getCurrentTrackData().getPropertyValueByID(1);
            else
                return «»;
        }
         
        private function moduleInitializationCompleteHandler(event:Event):void
        {
            if (_muteSound)
                _icon.alpha = 0.3;
            else
                _icon.alpha = 1;
        }
    }
}

Этот шаг довольно обширный. Сейчас я хотел бы быстро описать, как вставить галерею изображений, предоставляя все необходимые исходные файлы.

Откройте файл structure.xml и вставьте туда модуль галереи:

01
02
03
04
05
06
07
08
09
10
<module id=»3″ type=»simpleGallery» librarySymbolLinkage=»GalleryModule» resizable=»false» locked=»false» icon=»images/modules/gallery_icon.png» smallIcon=»images/modules/gallery_small_icon.png» isContent=»true»>
            <name><![CDATA[Gallery Widget]]></name>
            <properties/>
            <template alpha=»1″>
                <data>
                    <galleryData isDataProvider=»true»/>
                </data>
                <properties/>
            </template>
        </module>

После добавления модуля он должен появиться на панели управления. Но для работы с ним нам нужно создать три класса: GalleryModule.as, Monitor.as и Scroll_bar.as, которые можно найти в папке \ gallery_sources \ внутри загрузки исходного кода.

Загрузите эти классы (GalleryModule.as, Monitor.as и Scroll_bar.as) в папку src / modules.

В zip-архиве вы также можете найти файл gallery.fla. Скопируйте мувиклип из галереи из файла gallery.fla на сайт website.fla.

После того, как все загружено на локальный сервер, вы можете начать работать с галереей. Зайдите в Модули, выберите виджет Галерея и добавьте его на сцену. Дважды щелкните по нему, чтобы открыть панель управления. Загрузите пару фотографий, используя кнопку «Добавить новый элемент».

мото cms

Вы также можете указать атрибуты title и alt для каждого изображения, добавить описание или связать изображение со страницей, всплывающим или внешним URL-адресом.

мото флеш cms

Сохраните изменения и просмотрите сайт.


Этот учебник постепенно подошел к концу, но нет никакого конца в улучшении вашего сайта; добавив некоторые яркие и полезные функции, а затем продвигая его. Я также должен сказать, что Moto CMS предоставляет множество дополнительных модулей и виджетов, на основе которых вы можете создавать свои собственные пользовательские модули, тем самым экономя ваше время и сокращая расходы. Кроме того, эта Flash CMS также предоставляет все необходимые инструменты SEO, которые могут помочь вам оптимизировать ваш сайт и получить более высокий рейтинг в поисковых системах. Просто попробуйте!

Надеюсь, вам понравился этот урок, спасибо за чтение!