Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Action Script.doc
Скачиваний:
18
Добавлен:
07.02.2015
Размер:
4.39 Mб
Скачать
        1. Задание 5

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

Нарисуйте на сцене соответствующие изображения и поочерёдно их выделяя преобразуйте в экземпляры клипов (F8). Пусть экземпляры клипов системный блок монитор и принтер имеют имена «sb» «mo» «pr» (панельInstance). Для включения монитора можно использовать следующую методику. Внутри клипа монитор расположить 2 кадра. В одном изображение выключенного монитора, а в другом включённого. Для исключения самопроизвольного проигрывания кадров присвоить им скриптыstop().

Кнопка, расположенная внутри системного блока будет запускать проигрывание клипа монитор

On(release){

_root.mo.play()

}

Теперь в кадр с горящим монитором достаточно поместить кнопку, которая будет запускать проигрывание клипа принтер

On(release){

_root.pr.play()

}

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

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

root.mo.scr._visible=0;

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

on(release){

_root.mo.scr._visible=! _root.mo.scr._visible;

}

Теперь несколько контрольных заданий

сделайте все ссылки относительными,

используйте слэш синтаксис как с абсолютными так и с относительными ссылками

примените tellTarget

примените with

при включении системного блока на экране должна быть видна загрузка ОС.

На экране сделайте кнопку завершения работы.

Изменение свойств клипов.

Простой доступ к предопределённым свойствам экземпляров появился лишь в пятой версии Flash. До этого приходилось использовать функциюSetProperty("имя клипа", изменяемое свойство) = значение

Изменяемым свойством может быть

_xи _yгоризонтальная и вертикальная координата клипа. Отсчёт ведётся от верхнего левого угла сцены вправо и вниз до центральной точки экземпляра..

_xscale и _yscaleмасштаб клипа по вертикали или по горизонтали в процентах. По умолчанию 100

_alpha. Прозрачность клипа. Принимает значения от 100 – непрозрачный до 0 – абсолютно прозрачный. Прозрачный клип сохраняет работоспособность

_visibleВидимость клипа. Принимает значенияTrue(1) –видим , илиFalse(0) – невидим. Невидимый клип перестаёт работать.

_rotation Поворот клипа в градусах.

_name– новое имя клипа

Оставшиеся три свойства имеют глобальный характер и применяются к ролику в целом.

highquality- Качество прорисовки графики Принимает значения 0-низкое 1- среднее (по умолчанию) и 2 – высокое

_focusrec- прорисовка жёлтого прямоугольника вокруг кнопок при перемещении по ним клавишейTab. Принимает значения 0 – отключено и 1 – включено

_soundbuftimeОпределяет размер буфера для загрузки потокового звука. Измеряется в секундах. По умолчанию 5 секунд.

В новом ролике создайте экземпляр «MovieClip» (нарисовать, выделить,F8) и присвойте ему имя, например «ball» (панельInstance). Свойства данного экземпляра будем изменять с помощью кнопок. Создайте экземпляр кнопки на сцене и введите в него скрипт (правая кнопка на экземпляре «Actions»)

on (release){

setProperty ("ball", _visible) = 0

}

Данная кнопка сделает клип невидимым. Скопируйте экземпляр кнопки, например перетащив, удерживая Ctrl, и отредактируйте скрипт, что бы видимость принимала значение 1

on (release){

setProperty ("ball", _visible) = 0

}

Проиграйте ролик.

Функция setPropertyуже почти не применяется. Во первых, она более громоздка чем прямой доступ к свойству через точечный синтаксис. Во вторых, она может лишь устанавливать значение, но не читать его. Для чтения значений свойств была предусмотрена функция «getProperty». Она похожа на функцию «SetProperty», но не устанавливает свойство, а сама становится равным его значению (возвращает значение свойства). Например, приведённый скрипт присвоит переменнойxтекущую высоту клипа

x=getProperty("ball", _height)

точечный синтаксис позволит напрямую обращаться к значению свойства клипа. Недостатки функций можно проиллюстрировать на простом примере. Пусть требуется увеличить высоту экземпляра в 2 раза. Используя setProperty/getProperty можно записать

setProperty ("ball", _height) = getProperty ("ball", _height)*2;

а с помощью точечного синтаксиса

ball._height=ball._height*2;

или ещё короче

ball._height*=2;

Думаю, комментарии излишни. Сами старайтесь обходиться без этих функций, но не пугайтесь, если они встретятся вам в кодах других авторов.