Webmaster общности: Predpriemach.com | SearchEngines.bg
    web-tourist05/01/20204min00

    Курсор (с променлива скорост)

    Автор: sova

    Този урок, ще ви покаже как да си направите собствен курсор за Flash проекта ви. Тук обаче ще предложа вариант не само за обикновен курсор (такива уроци с лопата да ги ринеш), а и за един по-различен курсор, на който може да се задава скорост.

    1. Проверете с колко кадъра в секунда се възпроизвежда проектът ви. Аз лично използвам за всички мои работи 30 fps (frames per second – кадъра в секунда), но всяка стойност над 24 (и не прекалено голяма) е добре. Ако не сте много сигурни какво означава тази стойност – задайте я на 30.

    .: Modify > Document… >

    .: Frame rate: 30

    Ok

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

    .: Нарисувайте графиката за курсора ви.
    .: Modify > Convert to Symbol…

    .: Name: Cursor
    .: Type: MovieClip
    .: Registration: Най-горе вляво. (Всъщност тази точка определя къде ще е активната зона на курсора – тази, с която се натискат бутоните и пр. Обикновено тя е най-горе вляво, но има и изключения. Например ако курсорът ви е във формата на мерник – тогава тази точка (Registration) трябва да е посредата. Помислете – всичко зависи от индивидуалните нужди на потребителя.

    Ok

    1. Дайте име на MovieClip-a: cursor_mc.

    .: Селектирайте курсора.
    .: В панела ‘Properties’ за име на инстанцията (Instance Name) напишете: cursor_mc

    1. В кадър 1 на главната (_root) времедиаграма поставете следния скрипт:
    Mouse.hide();
    var speed:Number = new Number(20);
    cursor_mc.onEnterFrame = function() {
    this._x += this._xmouse/(20/speed);
    this._y += this._ymouse/(20/speed);
    };
    1. Тествайте проекта.

    .: Control > Test Movie

    Интересното на този начин на скриптиране на курсора е, че може да му се зададе скорост. Пробвайте само в този ред:

    var speed:Number = new Number(20);

    ….вместо двайсет да дадете някаква друга стойност на променливата speed (между 0 и 20, без нулата). Например 5. Тествайте отново (стъпка 4). Ще забележете как курсорът се забавя постепенно.

    Ако не ви интересува как работи скрипта – за вас урокът свършва тук.

    Обяснение на скрипта

    Mouse.hide();

    Разбира се от самосебе си. Скрива стандартния курсор.

    var speed:Number = new Number(20);

    Създава променлива от типа Number с име speed и й задава стойност 20. Тази променлива определя скоростта на курсора. Тя трябва да е положително число по-малко от 20. (По-малко от 20 е заради по-нататъшния вид на скрипта, иначе няма ограничения – експериментирайте!)

    cursor_mc.onEnterFrame = function() {
    
    //тука е самата фунцкия, която ще обясня след малко
    
    };

    Това е началото на една функция, която е присвоена към метод за манипулатор на събитие. Казано по-просто: При всяко настъпване на събитието onEnterFrame (в cursor_mc) ще се изпълнява function – всичко, което е заградено в средни скоби (‘{‘ и ‘}’). А самата функция е:

    this._x += this._xmouse/(20/speed);
    this._y += this._ymouse/(20/speed);
    

    Координатите на MovieClip-a се увеличават с координатите на истинския курсор спрямо MovieClip-a. Резултатът от това е, че MovieClip-ът се приближава до курсора. Делението след това служи за да може да се задава скорост на придвижване.

    Това е всичко. Успех!