QR-коды сейчас везде: реклама в журналах, рекламные щиты, даже рекламные ролики. Скорее всего, у вас в кармане телефон, который может прочитать QR-код и декодировать URL-адрес или сообщение, содержащееся в нем. В этом руководстве вы узнаете, как создать SWF-файл, который может повернуть процесс вспять: создать QR-код из URL-адреса или сообщения. Читай дальше!
Окончательный результат предварительного просмотра
Давайте посмотрим на финальное приложение, над которым мы будем работать:
Шаг 1: Краткий обзор
Используя готовые графические элементы, мы создадим красивый интерфейс, который будет работать на нескольких классах ActionScript 3.
Код будет эффективно использовать класс кодировщика QR Code, созданный Жаном-Батистом Пином .
Шаг 2: Настройки документа Flash
Откройте Flash и создайте документ шириной 480 пикселей и высотой 480 пикселей. Установите частоту кадров 24 к / с.
Шаг 3: Интерфейс
Будет отображен красочный красивый интерфейс, включающий несколько фигур, кнопок и многое другое.
Простые фигуры были созданы с использованием Flash Drawing Tools, поэтому нет необходимости включать их создание.
Шаг 4: Имена экземпляров
На изображении выше показаны имена экземпляров, используемые в мувиклипах . Те, которые начинаются с заглавной буквы, являются именами библиотечных классов и не должны быть на сцене.
Шаг 5: TweenNano
Мы будем использовать другой движок анимации движения, отличающийся от встроенного во Flash, по умолчанию, это повысит производительность и облегчит использование.
Вы можете скачать TweenNano с официального сайта .
Шаг 6: библиотека QR-кодов
Мы воспользуемся фантастической библиотекой QR Code Encoder, которую можно скачать здесь . Вы можете узнать больше об использовании внешних библиотек в своем коде с этим руководством .
Примечание редактора: для получения наилучших результатов используйте SWC-файл, а не классы в папке \ org \.
Шаг 7: Установите основной класс
Добавьте имя класса в поле « Класс» в разделе « Публикация » на панели « Свойства», чтобы связать FLA с классом основного документа .
Шаг 8. Создайте новый класс ActionScript
Создайте новый (Cmd + N) класс ActionScript 3.0 и сохраните его как Main.as в папке вашего класса.
Шаг 9: Структура класса
Создайте базовую структуру классов, чтобы начать писать код.
01
02
03
04
05
06
07
08
09
10
11
12
|
package
{
import flash.display.Sprite;
public class Main extends Sprite
{
public function Main():void
{
// constructor code
}
}
}
|
Шаг 10: Обязательные классы
Это классы, которые нам нужно импортировать, чтобы наш класс работал, директива import
делает внешние классы и пакеты доступными для вашего кода.
1
2
3
4
5
6
|
import flash.display.Sprite;
import flash.events.MouseEvent;
import org.qrcode.QRCode;
import flash.display.Bitmap;
import com.greensock.TweenNano;
import com.greensock.easing.Expo;
|
Шаг 11: переменные
Это переменные, которые мы будем использовать, прочитайте комментарии в коде, чтобы узнать о них больше, некоторые из их названий говорят сами за себя, поэтому комментариев там не будет.
1
2
3
4
5
6
7
|
private var textView:TextView;
private var smsView:SMSView = new SMSView();
private var emailView:EmailView = new EmailView();
private var linkView:LinkView = new LinkView();
private var lastView:Sprite;
private var currentTarget:String;
private var qrImg:Bitmap;
|
Шаг 12: Конструктор
Конструктор — это функция, которая запускается, когда объект создается из класса, этот код выполняется первым, когда вы создаете экземпляр объекта или запускается с использованием класса документа .
Вызывает необходимые функции для запуска приложения. Проверьте эти функции в следующих шагах.
1
2
3
4
5
|
public final function Main():void
{
addTextView();
addListeners();
}
|
Шаг 13: Добавить текстовое представление
Первая функция, выполняемая конструктором. Он создаст экземпляр TextView и добавит его на сцену. Это будет представление по умолчанию, которое будет отображаться при запуске приложения. Он включает в себя вызов для удаления видимого в данный момент представления (если он есть), а также выполняет Tween в качестве детали интерфейса.
01
02
03
04
05
06
07
08
09
10
11
12
13
|
private final function addTextView():void
{
removeLastView();
textView = new TextView();
textView.x = stage.stageWidth * 0.5;
textView.y = 110;
addChild(textView);
TweenNano.from(textView, 0.5, {y: textView.y — 10, alpha:0, ease:Expo});
lastView = textView;
}
|
Шаг 14: Просмотр SMS
Этот код обрабатывает положение SMSView и анимацию. Он вызывается при нажатии вкладки кнопки SMS.
01
02
03
04
05
06
07
08
09
10
11
12
13
|
private final function addSMSView():void
{
removeLastView();
smsView = new SMSView();
smsView.x = stage.stageWidth * 0.5;
smsView.y = 150;
addChild(smsView);
TweenNano.from(smsView, 0.5, {y: smsView.y — 10, alpha:0, ease:Expo});
lastView = smsView;
}
|
Шаг 15: Просмотр электронной почты
Код EmailView. Это разместит и оживит этот взгляд на сцене.
01
02
03
04
05
06
07
08
09
10
11
12
13
|
private final function addEmailView():void
{
removeLastView();
emailView = new EmailView();
emailView.x = stage.stageWidth * 0.5;
emailView.y = 155;
addChild(emailView);
TweenNano.from(emailView, 0.5, {y: emailView.y — 10, alpha:0, ease:Expo});
lastView = emailView;
}
|
Шаг 16: Просмотр ссылок
Это последняя вкладка, она удаляет последний видимый вид и добавляет LinkView на сцену.
01
02
03
04
05
06
07
08
09
10
11
12
13
|
private final function addLinkView():void
{
removeLastView();
linkView = new LinkView();
linkView.x = stage.stageWidth * 0.5;
linkView.y = 110;
addChild(linkView);
TweenNano.from(linkView, 0.5, {y: linkView.y — 10, alpha:0, ease:Expo});
lastView = linkView;
}
|
Шаг 17: Удалить последний просмотр
Эта функция удаляет видимый в данный момент вид со сцены и освобождает его для сбора мусора .
1
2
3
4
5
6
7
8
|
private final function removeLastView():void
{
if(lastView != null)
{
removeChild(lastView);
lastView = null;
}
}
|
Шаг 18: добавь слушателей
Следующий код связывает кнопки с соответствующими функциями. Это активирует навигацию на основе вкладок.
1
2
3
4
5
6
7
8
|
private final function addListeners():void
{
abcBtn.addEventListener(MouseEvent.MOUSE_UP, indicatorHandler);
smsBtn.addEventListener(MouseEvent.MOUSE_UP, indicatorHandler);
emailBtn.addEventListener(MouseEvent.MOUSE_UP, indicatorHandler);
linkBtn.addEventListener(MouseEvent.MOUSE_UP, indicatorHandler);
refreshBtn.addEventListener(MouseEvent.MOUSE_UP, refreshCode);
}
|
Шаг 19: Обработчик индикатора
Индикатор MovieClip — это маленькая стрелка, которая показывает активную вкладку. Эта функция помещает его в правильное положение и вызывает функцию табуляции.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
|
private final function indicatorHandler(e:MouseEvent):void
{
indicator.x = e.target.x;
switch(e.target.name)
{
case ‘abcBtn’:
addTextView();
break;
case ‘smsBtn’:
addSMSView();
break;
case ’emailBtn’:
addEmailView();
break;
case ‘linkBtn’:
addLinkView();
break;
default:
trace(‘Button Names Error’);
}
}
|
Шаг 20: Обновить QR-код
Эта функция запускается при нажатии кнопки «Обновить», она определяет текущую строку для преобразования и метод QRObject encode()
для создания растрового изображения, которое затем добавляется на сцену.
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
|
private final function refreshCode(e:MouseEvent):void
{
switch(lastView)
{
case textView:
currentTarget = textView.textTF.text;
break;
case smsView:
currentTarget = ‘SMSTO:’ + smsView.phoneTF.text + ‘:’ + smsView.contentTF.text;
break;
case emailView:
currentTarget = ‘SMTP:’ + emailView.toTF.text + ‘:’ + emailView.subjectTF.text + ‘:’ + emailView.bodyTF.text;
break;
case linkView:
currentTarget = linkView.linkTF.text;
if (currentTarget.indexOf(‘://’) == -1)
{
currentTarget = ‘http://’ + currentTarget;
}
break;
default:
trace(‘Target Error’);
}
if(qrImg != null)
{
removeChild(qrImg);
qrImg = null;
}
var qrObj:QRCode = new QRCode();
qrObj.encode(currentTarget);
qrImg = new Bitmap(qrObj.bitmapData);
qrImg.x = stage.stageWidth * 0.5 — (qrImg.width * 0.5);
qrImg.y = 300 — (qrImg.height * 0.5);
addChild(qrImg);
TweenNano.from(qrImg, 1, {alpha:0, ease:Expo});
}
|
Вывод
Используйте это приложение для создания ваших собственных QR-кодов и не забудьте изучить исходные файлы.
Надеюсь, вам понравился этот урок, спасибо за чтение!