Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Синтаксис ActionScript

Читайте также:
  1. В синтаксисе.
  2. Объем предложения как выразительное средство стилистического синтаксиса
  3. Синтаксис опису класу
  4. Синтаксис языка
  5. Создание/модификация с помощью синтаксиса квадратных скобок
  6. Стилистический синтаксис

Использование

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

Технология цифрового звука

Существуют две технологии записи и воспроизведения звука: аналоговая и цифровая. Известные всем бытовые магнитофоны и проигрыватели долгоиграющих пластинок ориентированы на аналоговую технологию. Запись и воспроизведение звука в компьютере и проигрывателях CD (лазерных дисков) основаны на цифровой технологии.

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

По природе своей звук является набором волн, вызванных колебанием физических устройств (струн, мембран). Для того чтобы ввести звук в компьютер, его надо преобразовать в цифровой вид, т.е. представить в виде последовательности цифр (или нулей и единиц в двоичной системе исчисления). Для преобразования аналоговых данных в цифровые используется аналого-цифровой преобразователь (ADC - Analog-to-Digital Converter).

При преобразовании звука в цифровой вид ADC измеряет поступающий сигнал с регулярными интервалами и присваивает цифровые значения уровню звука. Частота измерений называется скоростью выборки. Количество бит, используемых для кодирования данных, называется разрешающей способностью. Например, при записи звука разрешающая способность может быть 4, 8 или 16 бит, а скорость выборки может составлять 11 кГц, 22 кГц, 44 кГц. Чем выше скорость выборки и больше разрешающая способность, тем более качественный звук будет записываться и воспроизводиться.

Для воспроизведения звука необходим цифро-аналоговый преобразователь (DAC - Digital-to-Analog Converter). В компьютере есть специальная плата, позволяющая воспроизводить звук, и динамики, в которых происходит преобразования дискретных сигналов в звуковые волны.

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


 

Цифровая обработка звука. Звуковые карты

Общие сведения об устройстве звуковых карт

Все звуковые платы по назначению можно разделить на три группы:

По конструкции все платы делятся на обычные, или основные, называемые по традиции "картами", которые вставляются в разъем системной магистрали (обычно ISA), и дочерние, подключаемые к специальному 26-контактному разъему на основной карте. По сути, дочерняя плата как бы "надевается" на разъем, удерживаясь на нем только силой трения контактов и фиксирующих штифтов, образуя с основной картой своеобразный "бутерброд".

Из-за ограничений интерфейса между основной и дочерней платами дочерние платы могут быть только чисто музыкальными - никаких возможностей по записи/ воспроизведению звукового потока они иметь не могут.

В комбинированных картах можно выделить четыре более или менее независимых блока:

  1. Блок цифровой записи /воспроизведения, называемый также цифровым каналом, или трактом, карты. Осуществляет преобразования аналог -> цифра и цифра -> аналог в режиме программной передачи или по DMA. Состоит из узла, непосредственно выполняющего аналогово-цифровые преобразования - АЦП/ЦАП (международное обозначение- coder/decoder, codec), и узла управления. АЦП/ЦАП либо интегрируется в состав одной из микросхем карты, либо применяется от дельная микросхема (AD1848, CS4231, CT1703 и т.п.). От качества применяемого АЦП/ЦАП во многом зависит качество оцифровки и воспроизведения звука; не меньше зависит она и от входных и выходных усилителей. Цифровой канал большинства распространенных карт (кроме GUS) совместим с Sound Blaster Рro (8 разрядов, 44 кГц - моно, 22 кГц- стерео).Разрядность оцифровки, передаваемой по каналу DMA, не зависит от разрядности самого канала и определяется только возможностями карты.
  2. Блок синтезатора. Построен либо на базе микросхем FM-синтеза OРL2 (YM3812) или OРL3 (YM262), либо на базе микросхем WT-синтеза (GF1, WaveFront, EMU8000 и т.п.), либо того и другого вместе. Работает либо под управлением драйвера (FM, большинство WT) - программная реализация MIDI, либо под управлением собственного процессора - аппаратная реализация. Почти все FM-синтезаторы совместимы между собой, различные WT-синтезаторы - нет. Большинство WT-синтезаторов содержит встроенное ПЗУ со стандартным набором инструментов General MIDI (128 мелодических и 37 ударных инструментов), а также ОЗУ для загрузки дополнительных оцифрованных звуков, которые будут использоваться при исполнении музыки.
  3. Блок MРU. Осуществляет прием/передачу данных по внешнему IDI-интерфейсу, выведенному на разъем MIDI/Joystick и разъем для дочерних MIDI-плат. Обычно более или менее совместим с интерфейсом MРU-401, но чаще всего требуется программная поддержка.
  4. Блок микшера. Осуществляет регулирование уровней, коммутациюи сведение используемых на карте аналоговых сигналов. В состав микшера входят предварительные, промежуточные и выходные усилители звуковых сигналов.

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


 

Принцип устройства и работы видеоадаптера

Назначение устройства

Устройство, которое называется видеоадаптером (или видеокартой, видеоплатой, видимокартой, видюхой, видео), есть в каждом компьютере. В виде устройства, интегрированного в системную плату, либо в качестве самостоятельного компонента. Главная функция, выполняемая видеокартой, — преобразование полученной от центрального процессора информации и команд в формат, который воспринимается электроникой монитора, для создания изображения на экране. Монитор обычно является неотъемлемой частью любой системы, с помощью которого пользователь получает визуальную информацию. Таким образом, связку видеоадаптер и монитор можно назвать видеоподсистемой компьютера. То, как эти компоненты справляются со своей работой, и в каком виде пользователь получает видеоинформацию, включая графику, текст, живое видео, влияет на производительность как самого пользователя и его здоровье, так и на производительность всего компьютера в целом.

Вот почему при покупке компонентов видеоподсистемы необходимо сделать разумный выбор. Речь далее пойдет только о PC платформе, с используемой операционной системой Windows 95 или NT.

Почему? Просто потому что эта платформа и ОС доминируют.

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

Принцип работы видеоадаптера

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

Таким образом, почти на всем пути следования цифровых данных над ними производятся различные операции преобразования, сжатия и хранения. Оптимизируя эти операции, можно добиться повышения производительности всей видеоподсистемы. Лишь последний отрезок пути, от RAMDAC до монитора, когда данные имеют аналоговый вид, нельзя оптимизировать.

Рассмотрим подробнее этапы следования данных от центрального процессора системы до монитора.

1. Скорость обмен данными между CPU и графическим процессором напрямую зависит от частоты, на которой работает шина, через которую передаются данные. Рабочая частота шины зависит от чипсета материнской платы. Для видеоадаптеров оптимальными по скорости являются шина PCI и AGP. При существующих версиях чипсетов шина PCI может иметь рабочие частоты от 25Mhz до 66MHz, иногда до 83Mhz (обычно 33MHz), а шина AGP работает на частотах 66MHz и 133MHz.

Чем выше рабочая частота шины, тем быстрее данные от центрального процессора системы дойдут до графического процессора видеоадаптера.

2. Ключевой момент, влияющий на производительность видеоподсистемы, вне зависимости от специфических функций различных графических процессоров, это передача цифровых данных, обработанных графическим процессором, в видеопамять, а оттуда в RAMDAC. Самое узкое место любой видеокарты — это видеопамять, которая непрерывно обслуживает два главных устройства видеоадаптера, графический процессор и RAMDAC, которые вечно перегружены работой. В любой момент, когда на экране монитора происходят изменения (иногда они происходят в непрерывном режиме, например движение указателя мыши, мигание курсора в редакторе и т.д.), графический процессор обращается к видеопамяти. В то же время, RAMDAC должен непрерывно считывать данные из видеопамяти, чтобы изображение не пропадало с экрана монитора. Поэтому, чтобы увеличить производительность видеопамяти, производители применяют различные технические решения. Например, используют различные типы памяти, с улучшенными свойствами и продвинутыми возможностями, например VRAM, WRAM, MDRAM, SGRAM, или увеличивают ширину шины данных, по которой графический процессор или RAMDAC обмениваются информацией с видеопамять, используя 32 разрядную, 64 разрядную или 128 разрядную видеошину.

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

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


 

Обработка звука в Sound Forge 5.0.

 

Sound Forge 5.0 может импортировать файлы в двенадцати, а экспортировать - в семнадцати форматах, включая MP3, Windows Media, RealAudio, AIFF, WAV, VOX, AU/SND, формат Perfect Clarity Audio, Sound Designer и Video for Windows.

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

Режимов воспроизведения три: Normal, Looped и Sample/Cut List. В режиме Normal файл воспроизводится от курсора или от начала выделенного фрагмента, в режиме Loop циклически воспроизводится выделенный фрагмент или весь файл. Если вы хотите услышать, как файл будет воспроизводиться семплером, включите режим Sample/Cut List

В верхней части окна с файлом располагается область быстрой навигации (Overview Bar), где квадратными скобками обозначена видимая часть волновой формы. В этой области можно перемещать вертикальную полоску - указатель положения курсора, правой кнопкой мыши включать или выключать воспроизведение; удерживая левую кнопку и перемещая мышь получать эффект Scrub control, когда направление и скорость воспроизведения зависят от направления и скорости движения мыши.

Ниже области навигации находится линейка времени (Time Ruler), она может отображать время в секундах, семплах, кадрах, долях такта и т. д. (всего 11 форматов), формат выбирается из контекстного меню. Слева расположена линейка уровня (Level Ruler), уровень сигнала отображается в децибелах или процентах. В нижних углах окна - кнопки масштабирования волновой формы по горизонтали и вертикали. Предел масштабирования по горизонтали - от 1:1 (т. е. на один пиксель приходится один семпл) до 1:2097152.

В программе есть три инструмента редактирования: Edit Tool (курсор), Magnify (лупа) и Pencil (карандаш), назначение которых понятно из названий. Карандаш работает только при масштабе от 1:1 до 1:32.

Большинство операций редактирования, таких, как вырезание, копирование, удаление, обработка эффектами, выполняется над выделенным фрагментом. Выделение производится перемещением мыши при нажатой левой кнопке, либо клавишами управления курсором при нажатой кнопке Shift, что, кстати, позволяет добиться большей точности. Можно выделять фрагменты в левом и правом канале по отдельности. Если перетащить выделенный фрагмент в пустую область главного окна, то будет создан новый файл с этим фрагментом.


 

9 Macromedia Flash MX. Анимация: покадровая анимация, анимация с кадрированием движения, анимация с кадрированием формы

ПОКАДРОВАЯ АНИМАЦИЯ

Итак, для создания покадровой анимация требуется предварительно подготовить (или, по крайней мере, продумать) каждый кадр фильма. При этом необходимо учитывать следующее обстоятельство. Плавность перехода от одного кадра к другому и, соответственно, плавность и естественность движений персонажей зависят от того, насколько отличается следующий кадр от предыдущего (а не от скорости смены кадров, как иногда полагают). Другими словами, чем больше кадров содержит «мультик», тем ближе движения персонажей к естественным. Поэтому создание покадровой анимации является весьма кропотливым делом. Ее целесообразно применять в тех случаях, если объекты видоизменяются или взаимодействуют друг с другом каким-либо сложным образом.

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

Создание последовательности ключевых кадров

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

Элементы интерфейса временной диаграммы были рассмотрены в разделе «Организация пользовательского интерфейса» третьей главы (см. рис. 3.7). Теперь пришло время поговорить о том, какую роль играет каждый из этих элементов при создании «мультика».

 

Создание интерактивных фильмов

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

Интерактивность Flash-фильма обеспечивается за счет включения в него так называемых сценариев, которые представляют собой набор инструкций на языке ActionScript. Каждая инструкция инициируется при наступления определенного связанного с'ней события. События могут быть самые разнообразные: достижение считывающей головкой определенного кадра, нажатие пользователем клавиши на клавиатуре, щелчок кнопкой мыши и т.д.

Подобно другим современным языкам сценариев (типа JavaScript или VBScript), ActionScript - это объектно-ориентированный язык программирования. Объекты в ActionScript могут содержать данные или их графическое представление в виде символа определенного типа. Для создания сложных сценариев или новых типов объектов нужно иметь некоторые навыки в программировании. Вместе с тем, для создания несложных интерактивных фильмов совсем необязательно изучать язык ActionScript, поскольку события и процедуры могут быть назначены элементам фильма с помощью диалоговых окон и панелей свойств.

В отличие от предшествующих версий, в Flash MX появился вполне «дееспособный» редактор сценариев, и даже имеется встроенный отладчик, который позволяет обнаружить ошибки, допущенные при использовании синтаксических конструкций языка.


 

Язык Action Script. Синтаксис. Возможности

ActionScript — объектно-ориентированный язык программирования, один из диалектов ECMAScript, который добавляет интерактивность, обработку данных и многое другое в содержимое Flash-приложений. ActionScript исполняется виртуальной машиной (ActionScript Virtual Machine), которая является составной частью Flash Player. ActionScript компилируется в байт-код, который включается в SWF-файл.

SWF-файлы исполняются Flash Player-ом. Flash Player существует в виде плагина к веб-браузеру, а также как самостоятельное исполняемое приложение (standalone). Во втором случае возможно создание исполняемых exe-файлов (projector), когда Flash Player включается в swf-файл.

С помощью ActionScript можно создавать интерактивные мультимедиа-приложения, игры, веб-сайты и многое другое.

Синтаксис ActionScript основан на спецификации ECMAScript.

Синтаксис ActionScript

Каждый язык имеет свои правила. Есть они и у ActionScript. Очень важно усвоить их твердо — ведь, в отличие от человека, транслятор не сможет понять текст программы, если в нем будет хотя бы одна ошибка. В этом разделе мы обсудим основные нормы грамматики ActionScript, поговорим, каким принципам нужно следовать, создавая сценарии. Твердое знание правил языка гарантирует, что вы не столкнетесь с теми проблемами, которые могут возникнуть при безграмотном написании кода.

Пробельные символы
Языки программирования очень похожи на языки речи. В них есть слова, предложения, знаки препинания. При простом письме слова разделяются пустыми промежутками (или разносятся по разным линиям), строки выравниваются друг относительно друга при помощи отступов. Похожим образом формируется и код программы. Реализуется же приведение его текста к «человеческому» виду при помощи так называемых пробельных символов: пробела (пустой промежуток), возврата каретки (обозначает переход на новую строку) и знаков табуляции (отвечают за отступы). Представляете, если бы их не было, как сложно было бы разобраться в сценарии, записанном в одну строку!
В ActionScript две разные лексемы (проще говоря, слова) должны быть обязательно разделены одним из пробельных символов. В противном случае интерпретатор воспримет их как единое целое:
varmyVar; // Неверное объявление переменной: нет разделения // пробельным символом
var myVar; // Верно: ключевое слово и идентификатор // разделены пробелом
var myVar; // Верно: ключевое слово и идентификатор разделены // символом возврата каретки
Не имеет значения, сколько пробелов или пустых линий разделяют лексемы — при интерпретации сценария лишние знаки будут просто проигнорированы.x=y * z; // Полным аналогом данного кода является нижележащий х = у *z;
Не обязательно использовать пробельные символы, если между словами имеются такие разделители, как операторы (+, &, * и т. д.), круглые или фигурные скобки, символ «;». Однако часто это необходимо делать, иначе код будет нечитабельным.
Нужно обратить внимание, насколько в приведенном примере скрипте «лишними» пробельными символами воспринимается лучше кода без них!
Качественное форматирование кода — это один из признаков профессионализма программиста. Ведь прежде всего оно определяет, насколько читабельной будет программа. А это очень важно как для просматривающих код сторонних лиц, так и для самого разработчика (например, в грамотно отформатированном скрипте гораздо проще найти ошибки). Улучшению читабельности кода посвящены целые книги, а на программистских факультетах подобные навыки отрабатывают на отдельных занятиях. Важно уметь правильно формировать и ActionScript-программы. Однако, если код создается на панели Actions, сильно напрягаться, тщательно выравнивая каждую строчку, не стоит. Достаточно воспользоваться возможностью автоматического форматирования, которую мы обсудили немного выше, чтобы ваш код моментально приобрел идеальную структуру. Причем при этом будут расставлены не только пробельные символы, но и недостающие знаки завершения предложений и требующиеся скобки блоков.
Завершение предложений
Предложением в языкознании называется синтаксически и интонационно оформленная конструкция, выражающая сообщение. Приблизительно то же означает этот термин и в ActionScript. Под предложением мы будем понимать инструкцию, которая влечет за собой выполнение какого-то логически завершенного действия. Любая программа представляет собой последовательность предложений (точно так же, как в литературе из них складывается произведение).
Любое предложение в ActionScript следует завершать точкой с запятой. Правило это не очень строгое, и чаще всего программа будет корректно работать и при его несоблюдении. Где заканчивается то или иное предложение, интерпретатор попытается предположить исходя из косвенных признаков (в некоторых универсальных языках программирования при этом была бы вызвана ошибка).
Хотя правила завершения предложений в ActionScript достаточно мягкие, лучше ими не злоупот-реблять, всякий раз ставя после предложения точку с запятой. В противном случае вполне возможно появление таких ситуаций, правильно истолковать которые интерпретатор не сможет (или, хуже того, истолкует неверно).
Бывает, что одновременно нужно вызвать несколько предложений. В этом случае они объединяются в один блок, для чего используются фигурные скобки. Такие блоки есть у функций, циклов и условных предложений. Ставить точку с запятой после блока предложений не следует.
И здесь нужно отметить, что у приведенного правила есть исключение: точка с запятой ставится после блока функции в том случае, если она задана в форме анонимной функции и присваивается переменной или свойству. Прежде всего это относится к обработчикам событий:
_root.onEnterFrame = function() {
trace(_root._currentframe);
}; // После анонимной функции ";" ставится
Также точка с запятой не ставится после таких директив ActionScript, как #include (импортирует код из внешнего текстового файла), #initclip (начало инициализации компонента), #endinitclip (конец инициализации клипа).
В большинстве случаев недостающие точки с запятой могут быть расставлены системой и самостоятельно, при запуске автоматического форматирования. Однако это не избавляет от описанных выше трудностей.
Чувствительность к регистру
Стандарт ЕСМА-262, на котором основан ActionScript, требует полной чувствительности идентификаторов к регистру. Однако s ActionScript FlashMX и Flash 5 это требование исполнено не было (вернее, оно было исполнено частично: к регистру были чувствительны лишь ключевые слова).

Это связано с тем, что необходимо было обеспечить полную обратную совместимость с фильмами четвертой версии Flash, вскриптовом языке которой чувствительности к регистру не было. Кроме того, считалось, что в большинстве своем флешеры далеки от программирования, поэтому Action-Script должен быть максимально простым и нестрогим. Чувствительность же к регистру значительно усложняет разработку кода, требуя от программиста большего внимания и дисциплинированности.

В ActionScript 2.0 наконец появилась полная чувствительность к регистру. Это означает, что теперь «date» и «Date» — это различные идентификаторы, и следующая строчка не сделает класс Date недоступным для данного кода, что неизбежно произошло бы в предыдущих версиях Flash:

var date = new Date();

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

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

• Если вы допустили ошибку при задании зарезервированного слова, то при компиляции произойдет сбой. Зарезервированные слова — это небольшая группа лексем, играющих ключевую для корректной работы транслятора роль. К ним относятся слова, объявляющие переменные и функции (var и function), предложения циклов (while, continue, break) и условий (if, else, switch, case, default), а также некоторые другие.

While(1) {} // Строка вызывает синтаксическую ошибку – // в имени цикла не должно Сыть символов // в верхнем регистре

Главная сложность, которая связана с чувствительностью к регистру, заключается в том, что созданные вами во Flash MX или Flash 5 фильмы либо библиотеки, будучи опубликованными под Flash 7, могут перестать работать. Если это произойдет, в первую очередь нужно проверить, одинаково ли прописаны имена идентификаторов. Упростить эту работу позволяет инструмент Find And Replace (Найти и заменить) панели Actions с отключенной настройкой Match Case (Учитывать регистр).

Можно долго спорить, чего больше — хорошего или плохого — от появления в ActionScript чувствительности к регистру. Одно несомненно; для компании Macromedia стало очевидно, что уровень Flash-разработчиков вырос и усложнение языка не снизит популярность программы.

Зарезервированные слова ActionScript
Стандарт ЕСМА-262 предусматривает наличие в языке так называемых зарезервированных слов (reserved words). Эти слова являются своеобразными камнями в фундаменте языка, и любое некорректное использование их неизбежно приведет к сбою при трансляции программы. Нужно знать зарезервированные слова, чтобы случайно не использовать одно из них в качестве идентификатора. Кроме того, следует помнить, что ошибка в регистре символа в зарезервированном слове приводит к сбою при компиляции, поэтому за правильностью их написания нужно следить особенно строго. Вот список зарезервированных слов ActionScript:

break extends instanceof static
case for interface switch
class function intrinsic this
continue get new typeof
default if private var
delete implements public void
dynamic import return while
else in set with

Список зарезервированных слов не является статичным: в каждой новой версии языка имеются изменения в нем. Если вам интересно, какие новые элементы могут появиться в очередном издании ActionScript, обратитесь к спецификации ЕСМА-262, где приведен полный перечень потенциальных обновлений.

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

Перечислим основные принципы создания имен.

• Любой идентификатор может быть образован при помощи букв произвольного регистра, цифр, знака подчеркивания или знака доллара. Использование всех остальных служебных символов и символов пунктуации (–, +, @, ^, (, *, +, /,-, [ и т, д.) недопустимо, так как эти знаки зарезервированы в качестве операторов и разделителей ActionScript. Также в имя не может входить пробельный символ.

var my variable; // неверно: в идентификаторе имеется пробел
var my-variable; // Неверно: в идентификаторе имеется тире
var my2variable; // Верно: корни имени разделены цифрой
var my_variable; // Верно: использован знак подчеркивания

Идентификатор не может начинаться с цифры — это вызывает ошибку при трансляции. Также не рекомендуется использовать в начале имени знак подчеркивания, так как это является атрибутом встроенных свойств ActionScript.

var 2myVariable // Неверно: идентификатор начинается с цифры
var _myVariable // Допустимо, но не рекомендовано: знак "_"
// в начале имени

Стандарт ЕСМА-262 рекомендует использовать знак доллара только в программно генерируемых идентификаторах.

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

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

var Date = new Date(); // Ай-яй-яй! Как бессмысленно закончил
// свое существование для данного кода
// объект Date!
var default = true; // Использовано зарезервированное слово —
// сбой неизбежен

• Имена функций (методов), переменных (свойств) и объектов должны начинаться с маленькой буквы, классов — с большой. Если имя функции (или, соответственно, метода) образовано несколькими корнями, то их начало желательно выделять большой буквой.

var obj=new Ball (]; // Имя пользовательского класса пишем
// с большой буквы, переменной — с малой
myOwnFunction(); // Имя функции пишем с маленькой буквы,
// а корни, его образующие, с большой

Кстати, приведенным правилам подчиняются и встроенные методы, свойства и объекты Action-Script (например, goloAndPlay() или Со1ог()), так что вспоминайте их, когда будете набирать код «из головы».

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

var MAX_NUMBERS_OF_CLIPS=1000; // Константа
var numbers_of_clips = arr_of_clips. length; // Переменная
(

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

var CHISLO_SHARIKOV = 10; // Понятно: константа определяет
// количестве объектов
bedinGradientFill () // Понятно: метод осуществляет заливку градиентом
var CHISLO_SHARIKOV=ftp2n; // Непонятно: какие функции выполняет
// переменная ftp2n?

Идентификатор может быть задан кирилличными символами. И никаких сложностей из-за использования такого имени не возникнет. Дело в том, что Flash-плейер полностью поддерживает уникод еще со времен Flash 6. А начиная с Flash MX 2004, с текстом в формате уникод работает и панель Actions. Это означает, что идентификатор можно составить практически из любых из более чем 65 000 символов, входящих в уникод.

var привет="Не11о";//Имя переменной образовано кирилличными символами

Большинство приведенных в данном подразделе правил не являются обязательными. Однако их не стоит игнорировать, так как они являются обобщением огромного практического опыта профессиональных разработчиков. В принципе, вы можете писать код в том стиле, к какому больше привыкли и какой является для вас наиболее понятным. Единственное, всегда нужно придерживаться однообразия: избранный в начале проекта стиль должен использоваться в нем везде. При коллективной работе хорошей практикой является предварительное составление документа, в котором описываются все использующиеся сокращения и условности. Подобные легенды (legends) можно найти во многих компонентах, распространяющихся в сети профессиональными студиями.

Комментарии
Трудно придумать что-то более абстрактное, чем компьютерная программа. Поэтому и разобраться в ней бывает очень сложно. Иногда проще самому написать код, чем понять алгоритм, созданный кем-то. Сотни или даже тысячи строчек кода, множество объектов, функций, свойств, переменных — собрать в уме это все воедино, чтобы догадаться, как же работает программа, — это воистину адский труд! Проще, если рядом есть автор кода, который объяснит, какой фрагмент для чего предназначен. Но возможность такой консультации существует далеко не всегда. Да и что делать, если автор — это вы, но за давностью дела совершенно не помните, на каких идеях построена собственная программа. Чтобы решить описанные выше (а также многие другие) проблемы, код принято комментировать.

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

В ActionScript, равно как и в таких языках, как С или Java, существуют два типа комментариев:

однострочные и многострочные. Однострочные комментарии задаются сочетанием //.

Любой текст в строке, расположенный после него, будет игнорироваться при трансляции (поэтому недопустимопомещать код правее комментария). Если сценарий создается на панели Actions, то текст комментария будет (по умолчанию) подсвечиваться серым цветом. Пример однострочного комментария:

var n=0; // Задаем счетчик для цикла

Многострочные комментарии создаются при помощи следующего блока: /* текст */. Весь текст, расположенный в нем, будет пропущен транслятором. Обычно многострочные комментарии используются для создания заголовков программ, а также подробного пояснения ключевых фрагментов кода. Пример многострочного комментария:

var n=0 /* При помощи этой переменной отслеживается количество экземпляров клипа ball.

Если их число превышает 100, кнопка "Дубликат" блокируется */

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

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

// Что-то тут не то... Пока обойдемся без этого фрагмента
/* this.attachMovie ("ball", "ball"+r, г., |_х: 10*п, _у:20*г.));
eval("tbis.ball"+n>._visible = false; */
Некоторые типы комментариев принято создавать стандартным образом с использованием особых сокращений. Перечислим основные из них:
• Пометка о том, что код следует доделать или внести в него коррективы: //:ТODO: tonic
• Указание на какую-то известную ошибку (проще говоря, баг). Комментарий должен пояснять, в чем она состоит и указывать се номер (bug ID). Схема: //:BUG: [bug ID] topic
• Пометка о том, что приведенный код не является лучшим решением. Обычно означает готовность автора его совершенствовать. Схема: //:KLUDGE:
• Указание, что внесение изменений в данный фрагмент кода является рискованным:
//:TRICKY:
Активно используйте комментарии и своей практике. Минута, потраченная на их создание, может спасти часы через полгода.

 

 

13 Форматы графических файлов: методы и технологии сжатия данных, основные характеристики.

Важно различать векторные и растровые форматы.


Дата добавления: 2015-10-29; просмотров: 136 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
ЗНАКОМСТВО С СУБД ACCESS| Цветовые модели и режимы.

mybiblioteka.su - 2015-2024 год. (0.032 сек.)