Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

effective_AdobeFlashCS3

.pdf
Скачиваний:
7
Добавлен:
10.04.2015
Размер:
2.23 Mб
Скачать

91

{

import flash.display.MovieClip;

public class CustomClass extends MovieClip

{

private _myVar:String;

public function CustomClass()

{

trace("custom class working!");

}

private function myFunction():void

{

trace("my method is working!");

}

}

}

Private доступен только объектам, созданным на основе этого класса. Public доступен всем объектам.

010.fla и FunButton.as. Перейдите описание класса и добавьте методы. Войдите внутрь конструктора и запишите описание событий которые будут происходить по наведению и убиранию мышки с объекта: this.addEventListener(MouseEvent.ROLL_OVER, grow); this.addEventListener(MouseEvent.ROLL_OUT, shrink);

Чтобы получить возможность использовать события мышки необходимо импортировать события:

import flash.events.MouseEvent;

Дале опишите Ф-и которые будут исполняться по наведению или убиранию мышки с объекта:

private function grow(event:MouseEvent):void

{

this.scaleX *= 1.5; this.scaleY *= 1.5;

}

private function shrink(event:MouseEvent):void

{

this.scaleX = _origXScale; this.scaleY = _origYScale;

}

92

Первая Ф будет изменять линейные размеры в 1.5 раза, а вторая возвращать первоначальный размер.

Вфайле 010.fla в библиотеке пкм по mcBoarder, Связывание. Поставьте галочку в пункте Экспортировать для ActionScript, класс FunButton. Запустите файл и проверьте его работоспособность.

Вернитесь в описание класса и добавьте свойство класса, которое будет содержать в себе масштаб объекта:

private var _origXScale:Number; private var _origYScale:Number;

а в конструктор класса – «обнуление» размеров:

_origXScale = this.scaleX; _origYScale = this.scaleY;

Проверьте как работает описанный класс на других объектах:

В010.fla. нарисуйте прямоугольник серого цвета без обводки, выделите его, преобразуйте его в ФР с именем rectangle. Задайте связывание и поставьте класс rectangle, в качестве базового класса поставьте FunButton.

Запустите файл и проверьте его работоспособность.

011.fla. и ButtonClass.as. Выделите все объекты на сцене и удалите их. В

ButtonClass.as опишите класс: package

{

import flash.display.MovieClip;

public class ButtonClass extends MovieClip

{

private var boarder:mcBoarder;

public function ButtonClass()

{

trace(“class working”);

}

}

}

В свойствах документа запишите класс документа: ButtonClass. Для символа mcBoarder укажите связывание, экспорт для ActionScript, класс – mcBoarder,

базовый класс: FunButton – созданный ранее. Допишите класс: import mcBoarder;

import FunButton;

внутри класса: запишите свойство: private var boarder:mcBoarder;

93

В конструкторе класса создайте экземпляр класса который будет унаследован от mcBoarder:

boarder = new mcBoarder(); addChild(boarder); boarder.x = 200; boarder.y = 200;

Таким образом, класс будет выглядеть следующим образом: package

{

import flash.display.MovieClip; import mcBoarder;

import FunButton;

public class ButtonClass extends MovieClip

{

private var boarder:mcBoarder;

public function ButtonClass()

{

boarder = new mcBoarder(); addChild(boarder); boarder.x = 200;

boarder.y = 200;

}

}

}

Если возникают проблемы с адресацией к классам, в настройке публикации в закладке Flash нажмите на кнопку Параметры, в параметрах присутствует раздел Путь к классам, если вы помните взаимное расположение файлов, то можете воспользоваться кнопкой «+», если нет, то кнопкой в виде прицела в которой осуществите поиск и выбор файлов классов, используемых при работе.

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

012.fla. Перейдите в 1кк слоя actions, в панели действий откройте изначальный скрипт. Добавьте действие:

event.target.y-=100;

Проверьте действие скрипта. var jumping:Boolean=false;

вместо event.target.y-=100; запишите: if(jumping){

94

event.target.y+=100;

jumping=false;

}

else{

event.target.y-=100’ jumping=true;

}

Можете сами немного модифицировать скрипт, для большей компактности

013.fla. Перейдите в 1кк слоя actions, в панели действий откройте изначальный скрипт. Допишите:

if(boarder1_mc.height>boarder2_mc.height){ trace(“1 is taller 2”);

}

else{

trace(“condition isn’t true”);

}

Измените этот кусок скрипта: if(boarder1_mc.rotation==boarder2_mc.rotation){

trace(“1 rotation equal 2”);

}

else{

trace(“condition isn’t true”);

}

На сцене доверните один из объектов и проверьте результат. Теперь сделайте так, что если поворот объектов не одинаков, то запишите в разделе else:

boarder1_mc.rotation=boarder2_mc.rotation

014.fla. Перейдите в 1кк слоя actions, в панели действий откройте изначальный скрипт. Допишите:

if(boarder1_mc.rotation == boarder2_mc.rotation)

{

trace("condition 1 is true");

}

else if(boarder1_mc.alpha == boarder2_mc.alpha)

{

trace("condition 2 is true");

}

95

Проверьте работу скрипта. Измените скрипт: if(boarder1_mc.rotation == boarder2_mc.rotation)

{

trace("condition 1 is true");

}

else if(boarder1_mc.alpha != boarder2_mc.alpha)

{

trace("condition 2 is true");

}

else if(boarder1_mc.y > boarder2_mc.y)

{

trace("condition 3 is true");

}

else

{

trace("no conditions are true");

}

Последнее альтернативное условие, в случае если ни одно из условий не выполнено.

015.fla. Перейдите в 1кк слоя actions, в панели действий откройте изначальный скрипт. Допишите:

if(boarder1_mc.rotation == boarder2_mc.rotation && boarder1_mc.alpha == boarder2_mc.alpha)

{

trace("condition is true");

}

else

{

trace("condition is false");

}

&& играет роль логического И, || - логического ИЛИ, ! – логического НЕ. Проверьте работу скрипта, измените условие

if(boarder1_mc.rotation == boarder2_mc.rotation II boarder1_mc.alpha == boarder2_mc.alpha)

Проверьте работу скрипта.

Циклы

Создайте новый файл. В 1КК запишите: for(var i:Number=0;i<20;i++){

trace(i);

96

}

Проверьте работу скрипта.

016.fla. Задайте связывание для mcBoarder, поставьте Экспорт для ActionScript. Перейдите в 1кк слоя actions, в панели действий напишите:

var boarder:mcBoarder; for(var i:Number=0;i<6;i++){

boarder=new mcBoarder(); addchild(boarder);

}

Проверьте работу скрипта.

017.fla. Перейдите в 1кк слоя actions, в панели действий откройте изначальный скрипт. Измените:

for(var i:Number=0;i<6;i++){ boarder=new mcBoarder(); addchild(boarder); boarder.x=i*75;

}

Проверьте работу скрипта. Измените скрипт. var boarderX:Number=127;

var boarderY:Number=271; for(var i:Number=0;i<6;i++){

boarder=new mcBoarder(); addchild(boarder); boarder.x= boarderX; boarder.y= boarderY; boarderX+=100; boarderY-=100;

}

Проверьте работу скрипта. Измените скрипт. var boarderR:Number=0;

и

boarder.rotation= boarderR; boarderR-=45;

Проверьте работу скрипта.

97

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]