Очи, които следят курсора
В този урок ще се научите как да използвате един прост метод за създаване на следящи курсора очи. Има много начини да се постигне този ефект, но аз избирам в случая най-лесния (защото само него владея ;). Ето как се получи при мен:

Очички

Както виждате този метод действа, но има някои недостатъци. Като за начало 'човечето' не може да погледне напред. Другото нещо е, че е като хамелион - движи си очите независимо едно от друго, което не е естесвено, но според мен изглежда забавно ;) (вторият проблем може да бъде поправен лесно, но това няма да го разглеждам в този урок....освен ако много не държите де).

1. Отворете нов документ:

File > New > Flash Document > Ok

2. Нарисувайте картинката, която ще представлява окото и я сложете в MovieClip:

Това е творческата част от задачата, така че оставям всичко във ваши ръце. ОБАЧЕ трябва да спазите следните правила:
!.1.! Обектът трябва да е симетричен и да има равни височина и широчина.
!.2.! Трябва да има нещо, което ще представлява зеницата на окото. Тази зеница трябва да е изместена нагоре от центъра на окото. Ето примери.

Така създаденото око селектирайте и:

Modify > Convert to Symbol....

.: Name: eye
.: Type: Movie clip
.: Registration: ( точно посредата)

Сега вече имате MovieClip, в който е окото.

3. Селектирайте окото и поставете следния скрипт в него:

//Това става в прозореца 'Actions', който може да бъде извикан от Window >
Actions или като натиснете F9


onClipEvent (mouseMove) {
var radiani:Number = new Number(Math.atan2(_root._ymouse-this._y, _root._xmouse-this._x));
var gradusi:Number = new Number(Math.round((radiani*180/Math.PI)));
this._rotation = gradusi+90;
updateAfterEvent();
}


5. Нормално е да има две очи, така че с така селектирания MovieClip:

.: Edit > Copy
.: Edit > Paste

....и поставете второто око където му е мястото.

Забележка: Няма ограничение за очите, можете да си направите някво многооко чудовище или пък циклоп, пробвайте ;)

6. Тествайте филма:

Control > Test Movie
или
Ctrl + Enter

И отново няма да ви спестя (този път съвсем малко) разязнение по скрипта. Но естесвено ако не ви интересува не четете оттук нататък.

Всъщност скриптът е елементарен. То си е просто използване на математически функции.


onClipEvent (mouseMove) {


При всяко настъпване на събитието mouseMove на обекта, към който е присъединен скриптът се извършват действията между средните скоби ('{' и '}').


var radiani:Number = new Number(Math.atan2(_root._ymouse-this._y, _root._xmouse-this._x));


Създава променлива radiani от тип Number, която указва ъгъла на окото (в радиани) чрез функцията аркус тангенс (Math.atan).


var gradusi:Number = new Number(Math.round((radiani*180/Math.PI)));


Създава променлива gradusi от тип Number, която указва ъгъла на окото (в градуси) като използва уравнението за превръщане на радиани в градуси.


this._rotation = gradusi+90;


Задава въртене на окото, равно на стойността на променливата gradusi +90.


updateAfterEvent();


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

И това е. Сега остава само да ви кажа, че това въртене според мишката може да намери още много приложения, не само за очи. Ето [url=http://store2.data.bg/offfff/Flash/aTan.html]този експеримент[/url] е създаде благодарение и на тази финкция.

Както винаги съветвам: Не се задоволявайте с това, което ви се казва в урока. Пробвайте първо да спазвате всичко както е, а след това започнете да експериментирате!

Успех.



/ Трябва да сте регистриран за да напишете коментар /