Skip to content

components.Button

vasili.kostin edited this page Aug 22, 2021 · 24 revisions

Наследуется от DSprite, и включает в себя все его свойства.

Button - простой кликабельный компонент игрового интерфейса, обеспечивающий взаимодействие с игроком.

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

hoverImage

Тип: String

По умолчанию кнопка имеет внешний вид, определяемый свойством image, унаследованным от Sprite. hoverImage позволяет определить как будет выглядеть кнопка при наведении курсора. В случае, если значение свойства hoverImage установлено в 'none' (в javascript оно примет значение null), Button реализует hover эффект увеличением размера кнопки на 10%. Чтобы отключить этот эффект увеличения - установите значение hoverImage равным значению image.

Дополнительно при наведении курсора на кнопку, для нее вызывается метод gotoLabelRecursive с меткой 'btn-over'. При уходе курсора с кнопки это метод вызывается с меткой 'btn-out'. Это позволяет анимировать over эффект кнопки с использованием дочерних анимированых MovieClip компонентов.


pressImage

Тип: String

По умолчанию кнопка имеет внешний вид, определяемый свойством image, унаследованным от Sprite. pressImage позволяет определить как будет выглядеть кнопка при нажатии на нее. В случае, если значение свойства pressImage установлено в 'none' (в javascript оно примет значение null), Button реализует press эффект уменьшением размера кнопки в 0.9 раза. Чтобы отключить этот эффект - установите значение pressImage равным значению image.


disabledImage

Тип: String

По умолчанию кнопка имеет внешний вид, определяемый свойством image, унаследованным от Sprite. disabledImage позволяет определить как будет выглядеть кнопка в disabled состоянии (состояние когда ее свойство interactive, унаследованное от Container установленно в false). В случае, если значение свойства disabledImage установлено в 'none' (в javascript оно примет значение null), Button реализует disabled эффект прозрачностью кнопки. Чтобы отключить этот эффект прозрачности - установите значение disabledImage равным значению image, либо disabledAlpha равное 1;


disabledAlpha

Тип: Number

Задает прозрачность кнопки в disabled состоянии, для случаев когда disabledImage не задано.


onClick

Тип: call

Поле, позволяющее привязать действие, которое будет вызываться нажатием кнопки. Это может быть вызов метода любого из присутствующих на сцене объектов, либо любой javascript метод, встроенный в Thing-editor, либо метод, написанный разработчиком для конкретной игры. Это поле имеет строковое значение, однако в редакторе свойств, оно имеет кнопки, позволяющие выбирать действие из списка доступных значений. Например, метод ShowScene (Показать сцену), при выборе которого будет предложено выбрать сцену, которая должна быть показана.

Подробнее см. Callback редактор


afterClick

Тип: call

Поле имеет тоже назначение что и onClick. Добавлено для редких случаев, когда нужно вызвать два простых действия по нажатию одной кнопки. Больше для этого подходит написание собственного javascript метода onMyButtonClick и вызывать его, но иногда, возможность избежать лишного метода может быть оправданной для легковесных безкодовых UI конструкций. Подробнее см. Callback редактор


hotkey

Тип: Number

Данное поле определяет keyCode, при нажатии которой на клавиатуре произойдет срабатывание данной кнопки. Самые распространенный keyCodes: 32 (Пробел), 17 (Enter), 28 (Esc).


sndClick

Тип: String

Поле задает звук, который будет воспроизведен при клике по данной кнопке. В редакторе свойств, это свойство имеет вид выпадающего списка. В javascript коде оно имеет строковое значение, которое является путем к звуковому файлу, без расширения, начиная от папки '/snd/' проекта. Подробнее про работу со звуком

Для вновь созданной кнопки это значение автоматически ставится в 'click', если звук с таким именем присутствует в папке /snd/.


sndOver

Тип: String

Поле задает звук, который будет воспроизведен при наведении курсора на данную кнопку. В редакторе свойств, это свойство имеет вид выпадающего списка. В javascript коде оно имеет строковое значение, которое является путем к звуковому файлу, начиная от папки '/snd/' проекта, без расширения. Подробнее про работу со звуком

Для вновь созданной кнопки это значение автоматически ставится в 'over', если звук с таким именем присутствует в папке /snd/.


repeatDelay

Тип: Number

Кнопка может вызывать автоповтор клика, при ее длительном нажатии. Это бывает полезно, для кнопок '+' '-' управляющих некоторыми счетчиками. repeatDelay определяет как долго нужно удерживать кнопку, в нажатом состоянии, перед тем как начнется повторное срабатывание. Задержка задается в кадрах. 60 кадров равняется одной секунде.


repeatInterval

Тип: Number

Задает интервал между автоматическими повторами срабатывания кнопки. Интервал задается в кадрах. 60 кадров равняется одной секунде.


isOvered

Тип: Boolean

Свойство, доступное только для чтения, определяет, находится ли курсор игрока над этой кнопкой.


isDowned

Тип: Boolean

Свойство, доступное только для чтения, определяет, является ли кнопка нажатой в данный момент.


Button.downedButton

Тип: [Button | null]

Статическое свойство, возвращающее нажатую в данный момент кнопку.


Button.overredButton

Тип: [Button | null]

Статическое свойство, возвращающее кнопку, над которой находится курсор пользователя.


Методы:

enable ()

Метод, который устанавливает значение поля interactive в true, и применяет внешний вид кнопки по умолчанию, если до этого кнопка находилась в состоянии disabled. Использование этого метода предпочтительнее прямому присвоению true полю interactive, так как в последнем случае внешний вид кнопки будет проигнорирован.


disable ()

Метод, который устанавливает значение поля interactive в false, и применяет disabled вид кнопки, в соответствии с настройками полей disabledImage и disabledAlpha. Использование этого метода предпочтительнее прямому присвоению false полю interactive, так как в последнем случае внешний вид кнопки будет проигнорирован.


callClick ()

Вызов этого метода эмулирует нажатие кнопки. Нажатие произойдет только в том случае, если свойство isCanBePressed этой кнопки возвращает true.


Button.globalOnClick

Статический глобальный обработчик нажатий кнопок. Данный метод введен для добавления трекинга действий игрока.

Button.globalOnClick = (button, clickSource) => {
	console.log('Event trace: button click, ' + button.name + '; ' + clickSource);
};

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

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

Изменение формы кликабельной области при помощи компонента Shape

Callback редактор

Свойства, унаследованные от DSprite

Редактируемые поля

Clone this wiki locally