खोज…


परिचय

एक प्रणाली, इकाई-घटक-प्रणाली पैटर्न में, घटकों के वर्गों को वैश्विक गुंजाइश, सेवाएं और प्रबंधन प्रदान करती है। यह घटकों के वर्गों के लिए सार्वजनिक एपीआई (तरीके और गुण) प्रदान करता है। एक सिस्टम को दृश्य तत्व के माध्यम से एक्सेस किया जा सकता है, और वैश्विक दृश्य के साथ घटकों को इंटरफ़ेस करने में मदद कर सकता है।

उदाहरण के लिए, कैमरा सिस्टम कैमरा घटक के साथ सभी संस्थाओं का प्रबंधन करता है, यह नियंत्रित करता है कि कौन सा कैमरा सक्रिय कैमरा है।

पैरामीटर

पैरामीटर विवरण
डेटा हैंडलर और विधियों में उपलब्ध स्कीमा द्वारा उपलब्ध कराया गया डेटा
एल <a-scene> A <a-scene> संदर्भ
योजना घटक स्कीमा के समान ही व्यवहार करता है। डेटा को पार्स करता है।

टिप्पणियों

विधि

एक सिस्टम, एक घटक की तरह, जीवनचक्र संचालकों को परिभाषित करता है। यह सार्वजनिक एपीआई होने के इरादे के तरीकों को भी परिभाषित कर सकता है।

तरीका विवरण
इस में एक बार कॉल किया जाता है जब सिस्टम को इनिशियलाइज़ किया जाता है। इनिशियलाइज़ करने के लिए उपयोग किया जाता है।
ठहराव जब दृश्य थम जाता है तो कॉल किया जाता है। गतिशील व्यवहार को रोकने के लिए उपयोग किया जाता है।
खेल जब दृश्य शुरू होता है या फिर से शुरू होता है। गतिशील व्यवहार शुरू करने के लिए उपयोग किया जाता है।
टिकटिक यदि परिभाषित किया गया है, तो दृश्य के रेंडर लूप के प्रत्येक टिक पर कॉल किया जाएगा।

एक प्रणाली का पंजीकरण

एक सिस्टम ए-फ्रेम घटक के समान पंजीकृत है।

यदि सिस्टम नाम एक घटक नाम से मेल खाता है, तो घटक में सिस्टम के लिए एक संदर्भ होगा। इस प्रणाली:

AFRAME.registerSystem('my-component', {
  schema: {},  // System schema. Parses into `this.data`.
  init: function () {
    // Called on scene initialization.
  },
  // Other handlers and methods.
});
AFRAME.registerComponent('my-component', {
  init: function () {
    console.log(this.system);
  }
});

एक सिस्टम तक पहुँचना

एक त्वरित प्रणाली दृश्य के माध्यम से पहुँचा जा सकता है:

document.querySelector('a-scene').systems[systemName];

पंजीकृत सिस्टम प्रोटोटाइप को AFRAME.systems माध्यम से एक्सेस किया जा सकता है।

तर्क और डेटा का पृथक्करण

सिस्टम वांछित होने पर डेटा से अलग तर्क और व्यवहार की मदद कर सकता है। हम सिस्टम को भारी उठाने को संभालने देते हैं, और घटक केवल इसके जीवन चक्र के तरीकों के माध्यम से इसके डेटा के प्रबंधन के बारे में चिंता करते हैं:

AFRAME.registerSystem('my-component', {
  createComplexObject: function (data) {
    // Do calculations and stuff with data.
    return new ComplexObject(data);
  }
});

AFRAME.registerComponent('my-component', {
  init: function () {
    this.myObject = null;
  },

  update: function () {
    // Do stuff with `this.data`.
    this.myObject = this.system.createComplexObject(this.data);
  }
});

एक प्रणाली के सभी घटकों को इकट्ठा करना

यह परिभाषित करने के लिए कोई सख्त एपीआई नहीं है कि सिस्टम घटकों का प्रबंधन कैसे करता है। एक सामान्य पैटर्न यह है कि घटक स्वयं सिस्टम की सदस्यता लेते हैं। सिस्टम में इसके सभी घटकों के संदर्भ हैं:

AFRAME.registerSystem('my-component', {
  init: function () {
    this.entities = [];
  },

  registerMe: function (el) {
    this.entities.push(el);
  },

  unregisterMe: function (el) {
    var index = this.entities.indexOf(el);
    this.entities.splice(index, 1);
  }
});

AFRAME.registerComponent('my-component', {
  init: function () {
    this.system.registerMe(this.el);
  },

  remove: function () {
    this.system.unregisterMe(this.el);
  }
});


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow