Class: Chain

Клас-утіліта, який виконує функції одна за одною, з запуском кожної функції після завершення попередньої. Його методи можна реалізувати за допомогою Class:implement у будь-який Class, і зараз він реалізований у Fx та Request. У Fx, наприклад, він використовується для створення користувацьких, складних анімацій.

Chain Method: constructor

Синтаксис:

Для нових класів:

var MyClass = new Class({ Implements: Chain });

Для існуючих класів:

MyClass.implement(Chain);

Самостійно

var myChain = new Chain;

Приклад:

    var Todo = new Class({
        Implements: Chain,
        initialize: function(){

            this.chain.apply(this, arguments);
        }
    });

 
    var myTodoList = new Todo(
        function(){ alert('get groceries'); },
        function(){ alert('go workout'); },
        function(){ alert('code mootools documentation until eyes close involuntarily'); },
        function(){ alert('sleep'); }

    );

Див. також:

Chain Method: chain

Додає функції в кінець стеку викликів екземпляра Chain.

Синтаксис:

myClass.chain(fn[, fn2[, fn3[, ...]]]);

Аргументи:

  1. fn - (function або array) Функція (або масив функцій) для додавання до стеку викликів ланцюга. Приймає будь-яку кількість функцій або масивів функцій.

Повертає:

  • (object) Поточний екземпляр класу. Виклики chain також можуть бути ланцюжковими.

Приклад:

//Fx.Tween has already implemented the Chain class because of inheritance of the Fx class.
var myFx = new Fx.Tween('myElement', 'opacity');
myFx.start(1,0).chain(

    //Notice that "this" refers to the calling object (in this case, the myFx object).
    function(){ this.start(0,1); },
    function(){ this.start(1,0); },
    function(){ this.start(0,1); }

); //Will fade the Element out and in twice.

Див. також:

Chain Method: callChain

Видаляє першу функцію стеку екземпляра Chain і виконує її. Наступна функція стає першою в масиві.

Синтаксис:

myClass.callChain([any arguments]);

Аргументи:

  1. Будь-які передані аргументи будуть передані функції "next".

Повертає:

  • (mixed) Значення, що повертається функцією "next", або false, коли ланцюг був порожнім.

Приклад:

var myChain = new Chain();
myChain.chain(
    function(){ alert('do dishes'); },
    function(){ alert('put away clean dishes'); }

);
myChain.callChain(); //Will alert 'do dishes'.
myChain.callChain(); //Will alert 'put away clean dishes'.

Chain Method: clearChain

Очищує стек екземпляра Chain.

Синтаксис:

myClass.clearChain();

Повертає:

  • (object) Поточний екземпляр класу.

Приклад:

var myFx = Fx.Tween('myElement', 'color'); //Fx.Tween inherited Fx's implementation of Chain.

myFx.chain(function(){ while(true) alert("D'oh!"); }); //Chains an infinite loop of alerts.

myFx.clearChain(); //Cancels the infinite loop of alerts before allowing it to begin.

Див. також:

Class: Events

Клас-утіліта. Його методи можна реалізувати за допомогою Class:implement у будь-який Class. У Fx, наприклад, цей клас використовується для додавання будь-якої кількості функцій до подій Fx, таких як 'complete', 'start' та 'cancel'. Події в класі, що реалізує Events, мають додаватися або як опція, або за допомогою addEvent, а не безпосередньо через .options.onEventName.

Синтаксис:

Для нових класів:

var MyClass = new Class({ Implements: Events });

Для існуючих класів:

MyClass.implement(Events);

Реалізація:

  • Цей клас можна реалізувати в інших класах для додавання його функціональності до них.
  • Events розроблено для гарної роботи з класом Options. Коли властивість опції починається з 'on' і за нею слідує велика літера, вона додається як подія (наприклад, 'onComplete' додасться як подія 'complete').

Приклад:

var Widget = new Class({

    Implements: Events,
    initialize: function(element){
        // ...
    },
    complete: function(){

        this.fireEvent('complete');
    }
});
 
var myWidget = new Widget();
myWidget.addEvent('complete', myFunction);

Примітки:

  • Події, що починаються з 'on', все ще підтримуються у всіх методух і конвертуються у їхнє представлення без 'on' (наприклад, 'onComplete' стає 'complete').

Див. також:

Events Method: addEvent

Додає подію до стеку подій екземпляра класу.

Синтаксис:

myClass.addEvent(type, fn[, internal]);

Аргументи:

  1. type - (string) Тип події (наприклад, 'complete').
  2. fn - (function) Функція для виконання.
  3. internal - (boolean, optional) Встановлює властивість функції: internal у true. Внутрішня властивість використовується для запобігання видаленню.

Повертає:

  • (object) Цей екземпляр класу.

Приклад:

var myFx = new Fx.Tween('element', 'opacity');
myFx.addEvent('start', myStartFunction);

Events Method: addEvents

Те саме, що й addEvent, але приймає об'єкт для додавання кількох подій одночасно.

Синтаксис:

myClass.addEvents(events);

Аргументи:

  1. events - (object) Об'єкт з ключ/значення, що представляє: ключ — назва події (наприклад, 'start'), а значення — функція, яка викликається при виникненні події.

Повертає:

  • (object) Цей екземпляр класу.

Приклад:

var myFx = new Fx.Tween('element', 'opacity');
myFx.addEvents({

    'start': myStartFunction,
    'complete': function() {
        alert('Done.');
    }

});

Events Method: fireEvent

Викликає всі події вказаного типу в екземплярі класу.

Синтаксис:

myClass.fireEvent(type[, args[, delay]]);

Аргументи:

  1. type - (string) Тип події (наприклад, 'complete').
  2. args - (mixed, optional) Аргумент(и) для передачі функції. Для передачі більше ніж одного аргументу, аргументи мають бути в масиві.
  3. delay - (number, optional) Затримка в мілісекундах перед виконанням події (за замовчуванням 0).

Повертає:

  • (object) Цей екземпляр класу.

Приклад:

var Widget = new Class({

    Implements: Events,
    initialize: function(arg1, arg2){
        //...
        this.fireEvent("initialize", [arg1, arg2], 50);
    }

});

Events Method: removeEvent

Видаляє подію зі стеку подій екземпляра класу.

Синтаксис:

myClass.removeEvent(type, fn);

Аргументи:

  1. type - (string) Тип події (наприклад, 'complete').
  2. fn - (function) Функція для видалення.

Повертає:

  • (object) Цей екземпляр класу.

Примітки:

  • Якщо функція має властивість internal, встановлену у true, то подія не буде видалена.

Events Method: removeEvents

Видаляє всі події заданого типу зі стеку подій екземпляра класу. Якщо тип не вказано, видаляє всі події всіх типів.

Синтаксис:

myClass.removeEvents([events]);

Аргументи:

  1. events - (optional) Якщо не передано, видаляє всі події всіх типів.
    • (string) Назва події (наприклад, 'success'). Видаляє всі події цього типу.
    • (object) Об'єкт пар тип-функція. Як той, що передається в addEvents.

Повертає:

  • (object) Поточний екземпляр класу.

Приклад:

var myFx = new Fx.Tween('myElement', 'opacity');
myFx.removeEvents('complete');

Примітки:

  • removeEvents не видаляє внутрішні події. Див. Events:removeEvent.

Class: Options

Клас-утіліта. Його методи можна реалізувати за допомогою Class:implement у будь-який Class. Використовується для автоматизації налаштування опцій екземпляра класу. Також додає Class Events, коли властивість опції починається з 'on' і за нею слідує велика літера (наприклад, 'onComplete' додає подію 'complete').

Синтаксис:

Для нових класів:

var MyClass = new Class({Implements: Options});

Для існуючих класів:

MyClass.implement(Options);

Options Method: setOptions

Об'єднує опції за замовчуванням класу з переданими опціями.

Синтаксис:

myClass.setOptions([options]);

Аргументи:

  1. options - (object, optional) Користувацькі опції для об'єднання з опціями за замовчуванням.

Повертає:

  • (object) Поточний екземпляр класу.

Приклад:

var Widget = new Class({
    Implements: Options,
    options: {
        color: '#fff',
        size: {

            width: 100,
            height: 100
        }
    },
    initialize: function(options){

        this.setOptions(options);
    }
});
 
var myWidget = new Widget({

    color: '#f00',
    size: {
        width: 200
    }
});
 

//myWidget.options is now: {color: #f00, size: {width: 200, height: 100}}

Примітки:

  • Полягає на опціях за замовчуванням класу, визначених у його властивості options.
  • Якщо клас має Events реалізовані, кожна опція, що починається з 'on' і за якою слідує велика літера (наприклад, 'onComplete'), стає подією екземпляра класу, припускаючи, що значення опції є функцією.

Эта документация распостраняется на правах Attribution-NonCommercial-ShareAlike 3.0 License.
Оригинал документации на английском.
© Linux.ria.com, 2008-2026