Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. ActionScript
Code

Введение в ByteArray

by
Difficulty:IntermediateLength:LongLanguages:

Russian (Pусский) translation by Yura Bobrov (you can also view the original English article)

ByteArray чрезвычайно мощный класс, который может использоваться для многих вещей, связанных с данными, включая (но не ограничиваясь) сохранение данных игры в режиме онлайн, шифрование данных, сжатие данных и преобразование объекта BitmapData в файл PNG или JPG. В этом введении мы будем использовать класс ByteArray для того, чтобы принять нативный объект AS3 и закодировать его в строку, которая может быть сохранена на сервере для последующего восстановления, а затем декодирована позже.

В предыдущих руководствах мы видели, как использовать XML и JSON для кодирования данных в текстовом формате (String). Однако как XML, так и JSON предназначены для чтения человеком, и в результате они гораздо больше, чем это необходимо. Также может быть сложно преобразовать некоторые виды AS3 объекта в любой формат. ByteArray имеет некоторые действительно передовые функций, но чтобы начать с чего-то, мы просто рассмотрим один простой пример: который позволяет очень легко превратить AS3 объект в строку.


Конечный результат предварительного просмотра

Давайте взглянем на конечный результат, в направлении которого мы будем работать:

Когда вы вставить закодированную строку ByteArray в TextField и нажмите кнопку Load, она будет расшифрована и покажет свойства объекта, сохраненные в нем. Вы можете попробовать следующие закодированные ByteArrays; скопируйте и вставьте их в текстовое поле и нажмите на кнопку Load, чтобы увидеть о чем я говорю:


Шаг 1: Создание нового проекта ActionScript

Create New ActionScript Project

В окне «Flash Builder»:

  1. Откройте Flash Builder 4
  2. Нажмите на File Menu
  3. Наведите курсор на New
  4. Нажмите на проект ActionScript

Шаг 2: Настройка New ActonScript Project

ActionScript Project Setup

В окне «New Project ActionScript»:

  1. В поле Project name введите «TUTORIAL_ByteArray»
  2. Пожалуйста, запомните, где вы сохраняете проект
  3. Нажмите кнопку «Finish»

Шаг 3: Base64.as

Скопируйте Base64.as в каталог «com» вашего проекта.

Copy Base64.as file into 'com' directory
  1. Создайте новый каталог «com» внутри вашего каталога src.
  2. Скачайте файл Base64.as из источника загрузок.
  3. Поместите файл в созданную директорию «com».

Base64.as пригодится позже. Это по Steve Webster, который привык находиться в dynamicflash.com (он покинул Flash-сообществj пару лет назад).


Шаг 4: Необходимые классы

Import all Classes used in this project

В классе TUTORIAL_ByteArray (который является основным классом) пожалуйста импортируйте следующие классы для этого руководства:


Шаг 5: Привыкаем к Flash Builder I

Trace the 'Hello World' message

Добавьте следующий код в конструктор TUTORIAL_ByteArray для очень простой проверки.

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


Шаг 6: Привыкаем к Flash Builder II

Local variable only available inside the function it is created

Теперь давайте попробуем проследить сообщение внутри переменной _test, но на этот раз мы будем делать это с другой функцией:

Нажмите сочетание клавиш CTRL + S, чтобы сохранить проект. Ошибка обнаружена после того, как вы сохранили ваш проект; это потому, что переменная, которая объявлена внутри функции не будут доступна для любой другой функции. Так что в этом случае, мы должны объявить переменную _test снаружи:

Private variables are available to all function inside the same class

Шаг 7: Необходимые приватные переменные

Create all private variables for this project

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


Шаг 8: UI

Давайте создадим простой пользовательский интерфейс для этого проекта.

a Simple user interface

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

Переименуйте нашу TestFunction в функцию InitUI и поместите следующую строку кода внутри. Пожалуйста, прочитайте закомментированные объяснения внутри кода.

Нажмите клавишу F11, чтобы запустить этот проект и увидеть простой пользовательский интерфейс, который мы создали.


Шаг 9: Добавление интерактивности

Type into the field and click the load button

Пожалуйста, прочитайте  закомментированные объяснения внутри кода

Нажмите клавишу F11, чтобы запустить этот проект; Попробуйте ввести что-то в _inputField, а затем нажмите _loadButton. Это самая базовая техника получения переменной от нашего пользователя и хранение ее в нашей приватной переменной.


Пища для размышлений

Мы, наконец, достигли наших наиболее важных шагов в рамках этого проекта, но прежде чем мы продолжим, позвольте мне обеспечить умственный стимулом для размышления. В настоящее время в нашем проекте, мы способны получить String и хранить ее в нашей приватной переменной. Но это только строка; как насчет если пользователь захочет ввести что-то внутри _inputFieldтак,  что я могу получить Object из него? Что следует пользователю напечатать? Ответ является «В кодировке Base64 ByteArray»


Шаг 10: Введение в ByteArray

Output from our ByteArray

Мы будем действовать медленно на этот раз, так что вы поймете класс ByteArray и будете иметь возможность делать собственные манипуляции с данными и применять их в ваших собственных проектах. Пожалуйста, прочитайте закомментированные объяснения внутри кода:

Нажмите клавишу F11, чтобы запустить этот проект. Смотрите, как это просто, ByteArray представляет собой чрезвычайно мощный класс и все это все еще не так сложно. Мы взяли нативный объект AS3 и превратили его в Action Message Format.

Перед отправкой данных в PHP-скрипт, с помощью метода GET, мы должны преобразовать его в строку Base64. Это потому, что Base64 может передаваться через XML (и HTML).


Шаг 11: Кодирование ByteArray в строку Base64

a Base64 String representation of our Byte data

Пожалуйста, прочитайте закомментированные объяснение в коде.

Нажмите клавишу F11, чтобы запустить этот проект. Преобразование объекта в ByteArray простое, преобразование Byte значения наших данных в строку Base64 является также простым, все благодаря Base64.as.


Шаг 12: Преобразование кодированной строки Base64 в объект

Converting a Base64 String into Object and displaying its properties and values

Мы будем стараться декодировать введенные строки Base64 в объект всякий раз, когда пользователь кликает _loadButton, измените нашу функцию _loadButton_CLICK. Пожалуйста, прочитайте закомментированные объяснение внутри кода:

Нажмите клавишу F11, чтобы запустить этот проект. Мы получаем нашу закодированную строку Base64 из нашего _testObject внутри нашего _inputField; Нажмите кнопку _loadButton, чтобы увидеть как наш проект преобразует эту строку Base64 обратно и отображает все свойства и значения. Вы можете попробовать скопировать и вставить строки Base64 в начале этого руководства и читать все мои сообщения.


Заключение

Класс ByteArray чрезвычайно мощный, и все же он очень простой в использовании. Я видел много отличных Flash-приложений и там используют ByteArray для выполнения столь многих выносящих мозг манипуляций данными, например таких, которые я упомянул в начале этого руководства. Я слышал, многие программисты Flash игр используют XML для сохранения данных своих посетителей «сохранить данные игры», но как мы все уже знаем, XML чертовски сложный класс; с ByteArray, я могу сохранить что-то вроде этого ЛЕГКО.

Да, все сложности  занимают только пару строчек кода, представьте себе ужас сохранения этих данных с помощью XML и извлечения их обратно для дальнейшего использования. Все что я должен сказать, с Byte данными вы можете достичь много вещей, и некоторые могут быть решением, которое вы так долго искали все это время.

Я надеюсь, что вы нашли это руководство полезным. Спасибо за чтение!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.