Skip to content

components.Container

vasili.kostin edited this page Jul 22, 2019 · 35 revisions

Container - самый простой компонент в Thing-Editor. Container - это класс, напрямую взятый из pixi.js

Container невидим на экране, и используется для объединения других компонентов в группы (слои).

Редактируемые свойства:

name

Тип: String

Название объекта. Используется для доступа к элементам сцены по имени из javascript кода, либо просто для удобства при навигации по дереву сцены в редакторе. В добавок, объекты которым задано имя становятся видимыми в редакторе путей для ссылочных полей.


x

Тип: Number

положение объекта по горизонтали.


y

Тип: Number

положение объекта по вертикали.


rotation

Тип: Number

поворот объекта в радианах.


alpha

Тип: Number

Прозрачность объекта.


visible

Тип: Boolean

Делает объект видимым или невидимым.


interactive

Тип: Boolean

Кликабельность объекта. Подробнее в справке PIXI. По умолчанию, это поле отключено #### false#### у всех компонентов кромe Button, пожтому любой спрайт добавленный на сцену будет кликаться игроком на сквозь, и клик будет срабатывать на кнопке, которая скрыта под спрайтом. Для того чтобы сделать спрайт не пропускающим клик, установите свойство interactive в true. Обычный спрайт имеет кликабельную форму в виде прямоугольника. Для изменения кликабельной формы (HitArea) кнопки или спрайта используйте компонент Shape, как обасть клика


__lockSelection

Тип: Boolean

служебное поле, которое делает элемент невыбираемым по клику на сцене в wievport. Значение этого поля сохраняется в файле сцены, но вырезается в релизной сборке игры, как и любое редактитруемое поле, имя которого начинается с двойного подчеркивания. Подробнее.


___id

Тип: Number

служебное поле, введенное в целях облегчения отладки. Значение этого поля генерируется автоматически, и отображается в дереве сцены. Значение поля может меняться между запусками игры, при переходах между сценами, и сохраняет свое значение только в пределах запуска сцены на исполнение. В финальную сборку игры это поле не попадает подробнее. Значение этого поля временное, и не сохранаяется в файле сцены, как и любое редактитруемое поле, имя которого начинается с тройного подчеркивания подробнее.

Свойства трансформации:

scale.x

Тип: Number

масштабирование объекта по горизонтали. 1 - значение по умолчанию, при котором объект имеет ширину как есть.

Поле scale.x является вложенным полем, для обеспечения совместимости с "плоским" редактором свойств, Thing-Editor добавляет компоненту псевдоним (геттер и сеттер) c именем #### scale.x#### подробнее.


scale.y

Тип: Number

масштабирование объекта по вертикали. 1 - значение по умолчанию, при котором объект имеет высоту как есть.


skew.x

Тип: Number

наклон объекта по горизонтали.


skew.y

Тип: Number

наклон объекта по вертикали.


pivot.x

Тип: Number

смещение точки опоры по горизонтали. Точка опоры (pivot) это точка, относительно которой трансформируется объект и его дочерние объекты.


pivot.y

Тип: Number

смещение точки опоры по вертикали


isCanBePressed

Тип: 'Boolean'

Свойство, доступное только для чтения, и только из javascript кода. Определяет, может ли объект быть нажатым игроком в данный момент. Это свойство проверяет interactive поле данного объекта, и interactiveChildren поля всех родительских объектов. Если interactiveChildren хотя бы одного родителя будет false, то свойство вернет false. К тому же это поле учитывает цикл жизни сцены. Cцена, находящаяся в состоянии закрытия, блокирует взаимодействие игрока с ее объектами. Свойсво isCanBePressed широко используется в интерактивных компонентах, наследующихся от Container, таких как Button, ScrollLayer, и других.


Методы:

remove()

Удаляет объект со сцены, и отправляет его и все его дочерние объекты в пул объектов.


detachFromParent()

Отсоединяет объект от родителя.


findChildByName(name : String)

Возвращаемый тип: DisplayObject

Рекурсивно ищет объект с заданным именем, среди всех дочерних объектов контейнера, включая вложенные.

В редакторе этот метод дополнительнотсодержит проверку на наличие более чем одного объекта с заданным именем, для избежания ошибок при разработке. Если более одного объекта будет найдено, будет выброшена ошибка . В финальном билде игры такая проверка не производится.


findChildrenByName(name : String)

Возвращаемый тип: Array<DisplayObject>

Рекурсивно ищет объекты c заданным именем, среди всех дочерних объектов контейнера, включая вложенные.


findChildrenByType(c: DisplayObjectConstructor)

Возвращаемый тип: Array<DisplayObject>

Рекурсивно ищет объекты заданного типа, и типов, унаследованных от заданного, среди всех дочерних объектов контейнера, включая вложенные.


findParentByType(c: DisplayObjectConstructor)

Возвращаемый тип: DisplayObject

Ищет родительский объект заданного типа.


addFilter(filter : PIXI.filter)

Добавляет фильтр в filters объекта. Этот метод используется в Thing-Editor для добавления эффекта обводки выделенным объектам.


removeFilter(filter : PIXI.filter)

Удаляет фильтр из filters объекта.


forAllChildren(callback : Function)

Рекурсивно вызывает callback функцию для каждого дочернего элемента контейнера, включая вложенные.


getGlobalRotation()

Возвращаемый тип: Number

Возвращает абсолютный поворот объекта относительно game.stage контейнера.


getScenePosition(to : PIXI.Point, skipUpdate = false)

Возвращаемый тип: PIXI.Point

Возвращает абсолютное положение объекта относительно game.stage контейнера. Метод похож на унаследованный из PIXI getGlobalPosition. Однако, так как контейнер game.stage может оказаться повернут, на мобильном устройстве, в случае, когда настройки ориентации проекта не совпадает с текущей ориентацией мобильного экрана.


getRootContainer()

Возвращаемый тип: DisplayObject

Возвращает самый верхний родительский объект, до game.stage.


gotoLabelRecursive (labelName : String)

Метод, тесно связанный с MovieCllip компонентом, поэтому его описание находится в разделе MovieClip

Следующая страница ->

Связанные темы:

Компоненты, Редактируемые поля, PIXI.js Container

Clone this wiki locally