Используются методы класса MovieClip

Контрольная работа №2

1. Описать назначение и принципы использования методов программного рисования в языке ActionScript.

 

Используются методы класса MovieClip

Применяются:

к экземпляру клипа (над содержимым)

к экрану – объекту _ root (под содержимым)

Методы для прямолинейных форм:

LineStyle(thickness,RGB,alpha) –рисует линию . Где:

thickness — толщина линии. Может быть задана целым числом от 0 до 255. Значению 0 соответствует hairline — самая тонкая из возможных во Flash линий, особенностью которой является то, что она не масштабируется при изменении размеров клипа. Если параметр thickness не прописан, линии рисоваться не будут;

rgb — параметр цвета линии. Необязателен. Принимает шестнадцатиричный код желаемого оттенка (определить его можно при помощи палитры Color Mixer). Если он не задан, то по умолчанию линии рисуются черными;

alpha — необязательный параметр, определяющий прозрачность линии, Принимает значение в процентах: 0 — абсолютно прозрачная линия, 100 — совершенно непрозрачная. Если параметр не задан, то ему автоматически ставится в соответствие значение 100.

Задание стиля линии является обязательным. Если метод lineStyle() не будет задействован, остальные методы рисования окажутся неработоспособными.

beginFill( RGB, alpha) – закрасить контур однородным оттенком.

color — шестнадцатеричный код, задающий цвет заливк.

alpha — параметр, определяющий прозрачность заливки. Необязателен. По умолчанию заливка непрозрачна.

moveTo( x, y) – указание начальной точки рисования(точки опускания пера). Где х и у координаты точки, с которой начинается линия.

lineTo( x, y) – используется, чтобы провести отрезок между последней точкой линии (или точкой опускания пера) и некоторой произвольной точкой. Где х и у – координаты этой точки, заданные в системе координат холста.

Методы для криволинейных форм:

curveTo( cx, cy, ax, ay) - Данный метод чертит фрагмент параболы второго порядка так, чтобы он, начавшись в последней точке кривой (или точке опускания пера), заканчивался в точке с координатами X=anchorX, Y=anchorY. Точки, задающие начало и конец фрагмента параболы, называются якорными. Направление и степень растяжения сплайна определяется параметрами controlX и controlY, которые соответствуют координатам точки пересечения касательных к параболе, проведенных через якорные точки

Графики функций

Написать и прокомментировать программу сценария:

2. Масштабирования объекта в соответствии с изменением размеров окна фильма.

fscommand(" allowscale", " true");

«allowscale» -Определяет, будут ли изменяться размеры фильма при масштабировании окна плейера

3. Маскирования одного объекта другим при перемещении маски мышью.

masked.setMask(mask); //маскируем клип masked маской, созданной на основании mask

mask.startDrag(true); // делаем маску перемещаемой

здесь mask – клип, который должен быть использован в качестве маски, masked –маскируемый клип.

4. Вывода в текстовое окно положения «ползунка» на шкале.

on( press){ this. startDrag( false, xmin, ymin, xmax, ymax);} //при нажатии объект будет //перемещаться (метод startDrag()), клип будет перемещаться относительно той //точки, в которой находился указатель мыши во время активации (параметр false), //xmin, ymin, xmax, ymax — точки, задающие границу области перемещения клипа

on(release){this.stopDrag();}

onClipEvent(EnterFrame){_root.t1.text=100*(this._x-188)/407;}

5. Часов с секундной, минутной и часовой стрелками.

_root.onEnterFrame=function(){

var time:Date=new Date();

var sec=time.getSeconds();

var min=time.getMinutes();

var hour=time.getHours();

_root.seconds._rotation=sec*6;

_root.minutes._rotation=(min+sec/60)*6;

_root.hours._rotation=(hour+min/60)*30;

}

 

1. Описать назначение и принципы использования методов программного управления звуком в Flash-фильмах.

Объект Sound

s1= new Sound();

Методы:

setVolume( percent), где percent — уровень громкости в процентах по сравнению с принятой по умолчанию (0 — тишина, 100 — стандартная громкость).

setPan() – устанавливает громкость левой и правой колонок (-100 до 100)

getVolume() – возвращает громкость

getPan() – возвращает панорамность

Свойства:

_ duration – продолжительность в милисекундах

 

Написать и прокомментировать программу сценария:

2. Создания и форматирования динамического текста.

3. Управления перемещением объекта клавишами.

var step:Number=5;

mc.onEnterFrame=function(){

if(Key.isDown(Key.LEFT)){_x-=step;}

if(Key.isDown(Key.RIGHT)){_x+=step;}

if(Key.isDown(Key.UP)){_y-=step;}

if(Key.isDown(Key.DOWN)){_y+=step;}

}

4. Прорисовка графика функции sin( x).

dx=200;

dy=200;

x=y=0;

lineStyle(1,0x000000);

for(x=-10;x<=10;x=x+0.1){

y=Math.sin(x);

sx=20*x;

sy=20*y;

moveTo(dx+sx-1,dy+sy-1);

lineTo(dx+sx+1,dy+sy-1);

lineTo(dx+sx+1,dy+sy+1);

lineTo(dx+sx-1,dy+sy+1);

lineTo(dx+sx-1,dy+sy-1);

}

5. Отражения объекта от границ окна при его движении в окне по наклонной траектории.

onClipEvent(enterFrame){

_x+=1*_parent.kx;

_y+=1*_parent.ky;

if(_x>=Stage.width){_parent.kx=-1;}

if(_x<=0){_parent.kx=1;}

if(_y>=Stage.height){_parent.ky=-1;}

if(_y<=0){_parent.ky=1;}

}

 

1. Описать назначение и принципы использования команды управления автономным проигрывателем Projector.

Написать и прокомментировать программу сценария:

2. Создания экземпляров клипа в виде шлейфа.

//в первом кадре сцены

var counter:Number=0;

mc1._x=_xmouse;

mc1._y=_ymouse;

mc1.onMouseMove=function(){

this._x=_xmouse;

this._y=_ymouse;

updateAfterEvent();

counter++;

this.duplicateMovieClip("mc1"+1,counter);

if(counter>=10){

counter=0;

}

};

// в последнем кадре, при создании объекта

stop();

this.removeMovieClip();

3. Регулировка громкости звука с использованием ползунка на шкале.

//в первом кадре слоя

s1=new Sound();

// к объекту, с помощью которого будет изменяться звук

on(press){

this.startDrag(false,this._x,73,this._x,219);

}

on(release){

this.stopDrag();

}

onClipEvent(enterFrame){

_root.s1.setVolume((219-this._y)/(219-73)*100);

}

4. Прорисовка прямоугольника и криволинейной фигуры.

// кривоугольник

with(_root){

lineStyle(0,0x00FF00,100);

beginFill(0xFF0000);

moveTo(0,0);

curveTo(200,200,400,0);

curveTo(200,200,400,400);

curveTo(200,200,0,400);

curveTo(200,200,0,0);

endFill();

}

// прямоугольник

with(_root){

lineStyle(10,0xFF0000,100);

beginFill(0x00FF00,50);

moveTo(0,0);

lineTo(100,0);

lineTo(100,100);

lineTo(0,100);

lineTo(0,0);

endFill();

}

5. Попадания объекта в целевую область (попадание мячей в корзину).

function moveToBase (clip:MovieClip, base:MovieClip){

var x: Number=clip._x;

var y:Number=clip._y;

clip.onPress=function(){startDrag(this);}

clip.onRelease=function(){stopDrag();

if(eval(clip._droptarget)==eval("_root."+base)){

clip._x=base._x;

clip._y=base._y;}

else{

clip._x=x;

clip._y=y;}}

}

moveToBase(pt,kor);

1. Описать назначение и принципы использования динамического и пользовательского текста в Flash-фильмах.

Написать и прокомментировать программу сценария:

2. Запуска анимации после ввода пароля.

// в последнем кадре слоя, где располагается текстовое поле

gotoAndStop(1);

t1.text="";

//к кнопке

on(press){if(pass=="Студент") {gotoAndPlay(2);}}

//на другом каком слое

stop();

3. Создание экземпляров фильма из библиотеки в виде «звездного фильма».

4. Регулировки стереоэффекта для звука с использованием ползунка на шкале.

//ну это если он хочет показать изменение баланса =)

//в первом кадре слоя

s1=new Sound();

//к объекту, с помощью которого будем изменять баланс

on(press){

this.startDrag(false,107,this._y,334,this._y);

}

on(release){

this.stopDrag();

}

onClipEvent(enterFrame){

_root.s1.setPan((this._x-(334+107)/2)/((334-107)/2)*100);

}

5. Движение объекта по траектории эллипса.

var w:Number=400;

var h:Number=200;

var s:Number=0.01;

var t:Number=0;//Math.random()*Math.PI*2;

sp1.onEnterFrame=function(){

sp1._x=100+Math.sin(t)*(0.5*w-0.5*sp1._width)+0.5*w;

sp1._y=100+Math.cos(t)*(0.5*h-0.5*sp1._height)+0.5*h;

//

//sp1._x=100+Math.pow(Math.sin(t),3)*(0.5*w-0.5*sp1._width)+0.5*w;

//sp1._y=100+Math.pow(Math.cos(t),3)*(0.5*h-0.5*sp1._height)+0.5*h;

//

//sp1._x=100+Math.sin(t)*Math.cos(2*t)*(0.5*w-0.5*sp1._width)+0.5*w;

//sp1._y=100+Math.cos(t)*Math.cos(2*t)*(0.5*h-0.5*sp1._height)+0.5*h;

t+=s;

}