define

defineで繰り返し利用するものを定義し、他で利用することが可能です。

defineで定義できるものには制限があります。

  • class
  • component

の2つを定義することが可能です。classは接頭辞を.(dot)で、componentは接頭辞を@として記述します。classにはpropertyの集合が入り、componentにはobjectを入れることが可能です。

defineで定義するcomponentではdefineを利用することは現段階ではできません。

{
  "define": {
    ".testClass1": {
      "color": "#000000",
      "size": [0, 0, 0]
    },
    "@newObject1": {
      "component": "@cube",
      "size": [2, 2, 2]
    },
    "@newObject2": {
      "group": [
        {
          "component": "@cube",
          "size": [2, 2, 2]
        },{
          "component": "@model('obj.obj')"
        }
      ]
    }
  }
}

scope

自分のdefineで定義しているブロック以上のブロックで利用可能です。

{
  "group": [
    {
      "component": "@cube.testClass1.testClass2",
      "define": {
        ".testClass2": {
          "size": [2, 2, 2]
        }
      }
    }
  ],
  "define": {
    ".testClass1": {
      "color": "#000000"
    }
  }
}