Skip to content

Commit 5448c53

Browse files
author
Dmitriy Zayceff
committed
Update.
1 parent 53ce519 commit 5448c53

16 files changed

+1038
-0
lines changed

Geometry.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Geometry
2+
3+
- **class** `Geometry` (`action\Geometry`)
4+
```php
5+
use action\Geometry;
6+
```
7+
8+
Утилитный класс только со статичными методами, для работы с простыми геометрическими фигурами.
9+
10+
> У класса приватный конструктор, невозможно создать объект данного класса.
11+
12+
---
13+
14+
#### Статичные методы
15+
16+
- `Geometry ::`[`hasPoint()`](#haspoint)
17+
- `Geometry ::`[`intersect()`](#intersect)
18+
19+
---
20+
21+
### `hasPoint()`
22+
```php
23+
hasPoint(object $what, double $x, double $y): bool
24+
```
25+
Метод возвращает `true`, если точка `$x, $y` входит внутрь фигуры объекта `$what`. Объектом может выступать абсолютно любой объект php, у которого есть свойства `x, y, width и height`.
26+
27+
```php
28+
if (Geometry::hasPoint($button, 100, 300)) {
29+
alert("Точка (x: 100, y: 300) находится внутри кнопки");
30+
}
31+
```
32+
33+
---
34+
35+
### `intersect()`
36+
```php
37+
intersect(object $one, object $two): bool
38+
```
39+
Возвращает `true`, если два прямоугольника объекта `$one` и `$two` пересекаются. В качестве объекта могут быть любые объекты php, у которых есть свойства `x, y, width и height`.
40+
41+
```php
42+
if (Geometry::intersect($button1, $button2)) {
43+
// кнопки button1 и button2 пересекаются.
44+
}
45+
```

Media.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Media
2+
3+
- **class** `Media` (`action\Media`)
4+
```php
5+
use action\Media;
6+
```
7+
8+
Утилитный класс только со статичными методами, для упрощенной работы с медиа-контентом (аудио и видео).
9+
10+
> У класса приватный конструктор, невозможно создать объект данного класса.
11+
12+
---
13+
14+
#### Статичные методы
15+
16+
- `Media ::`[`open()`](#open)
17+
- `Media ::`[`isStatus()`](#isstatus)
18+
- `Media ::`[`stop()`](#stop)
19+
- `Media ::`[`pause()`](#pause)
20+
- `Media ::`[`play()`](#play)
21+
22+
---
23+
24+
### `open()`
25+
```php
26+
open(string $file, bool $autoPlay = true, string | MediaPlayerScript $id = 'general')
27+
```
28+
Загружает медиа-файл из `$file` и начинает его играть если включена опция `$autoPlay`. В качестве плеера `$id` можно указать символьный код или объект класса [MediaPlayerScript](MediaPlayerScript). У каждого такого плеера свой поток воспроизведения, если вы хотите проигрывать несколько звуков параллельно, то используйте разные плееры `$id`.
29+
30+
```php
31+
// проигрываем музыку в отдельном плеере 'background_sound'
32+
Media::open('path/to/music.mp3', true, 'background_sound');
33+
34+
// проигрываем стартовый звук.
35+
Media::open('path/to/start.wav');
36+
37+
// можно указать объект плеера - модульный компонент.
38+
Media::open('path/to/file.mp3', true, $this->player);
39+
```

Score.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Score
2+
3+
- **class** `Score` (`action\Score`)
4+
```php
5+
use action\Score;
6+
```
7+
8+
Утилитный класс только со статичными методами, для более удобного управления счетом в играх и не только. Очень часто возникает необходимость сделать подсчет бонусов и жизней в играх, это могут быть монетки, которые добавляют очки, одновременно необходимо считать и жизни персонажа в игре. Все это позволяет сделать данный класс.
9+
10+
> У класса приватный конструктор, невозможно создать объект данного класса.
11+
12+
---
13+
14+
#### Статичные методы
15+
16+
- `Score ::`[`set()`](#set)
17+
- `Score ::`[`get()`](#get)
18+
- `Score ::`[`inc()`](#inc)
19+
20+
---
21+
22+
### `set()`
23+
```php
24+
set(string $name, int $value)
25+
```
26+
Устанавливает новое значение счету, под названием `$name`. У каждого счета всегда должно быть название в виде символьного кода.
27+
28+
```php
29+
// установили money (деньги) в размере 2000.
30+
Score::set('money', 2000);
31+
```
32+
33+
---
34+
35+
### `get()`
36+
```php
37+
get(string $name): int
38+
```
39+
Метод возвращает значение счета `$name`, оно всегда возвращается в виде целого числа.
40+
41+
```php
42+
$this->moneyLabel->text = Score::get('money');
43+
```
44+
45+
---
46+
47+
### `inc()`
48+
```php
49+
inc(string $name, int $value = 1)
50+
```
51+
Метод увеличивает счет `$name` на `1` или переданное значение `$value`. Для того, чтобы уменьшить значение, вы можете использовать этот же метод, достаточно передать `$value` в виде отрицательного числа, например `-1`.
52+
53+
```php
54+
Score::inc('money'); // добавить 1
55+
Score::inc('money', 100); // добавить 100
56+
Score::inc('money', -1); // уменьшить на 1
57+
Score::inc('money', -100); // уменьшить на 100
58+
```

UXButton.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# UXButton
2+
3+
- **class** <img src="https://cloud.githubusercontent.com/assets/1113915/22550186/fbd17720-e95f-11e6-8786-eb48ef061916.png" align="top" /> `UXButton` (`php\gui\UXButton`) **extends** [`UXButtonBase`](UXButtonBase).
4+
```php
5+
use php\gui\UXButton;
6+
```
7+
8+
Класс компонента для отображения кнопок.
9+
10+
> Изображение компонента:
11+
12+
> ![image](https://cloud.githubusercontent.com/assets/1113915/22550278/5cfa9a68-e960-11e6-9aa7-65eab286db91.png)
13+
14+
---
15+
16+
#### Свойства
17+
- См. у класса родителя [`UXButtonBase`](UXButtonBase).
18+
19+
#### Методы
20+
- [Конструктор (`new`)](#__construct) `__construct`
21+
- См. у класса родителя [`UXButtonBase`](UXButtonBase).
22+
23+
---
24+
25+
## Методы
26+
27+
### `__construct()`
28+
```php
29+
__construct([string $text = ''])
30+
```
31+
Конструктор кнопки.
32+
33+
```php
34+
$button = new UXButton('Привет, Мир!');
35+
```

UXButtonBase.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# UXButtonBase
2+
3+
- abstract **class** `UXButtonBase` (`php\gui\UXButtonBase`) **extends** [`UXLabeled`](UXLabeled).
4+
5+
> Классы наследники:
6+
7+
> [`UXButton`](UXButton), [`UXFlatButton`](UXFlatButton), [`UXToggleButton`](UXToggleButton).
8+
9+
Базовый абстрактный класс всех кнопок.
10+
11+
---
12+
13+
#### Свойства
14+
- См. у класса родителя [`UXLabeled`](UXLabeled).
15+
16+
#### Методы
17+
- См. у класса родителя [`UXLabeled`](UXLabeled).

UXControl.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# UXControl
2+
3+
- abstract **class** `UXControl` (`php\gui\UXControl`) **extends** [`UXRegion`](UXRegion).
4+
5+
Абстрактый класс компонентов, у которых может быть всплывающая подсказка и контекстное меню.
6+
7+
> Классы наследники:
8+
9+
> [`UXHTMLEditor`](UXHTMLEditor), [`UXLabeled`](UXLabeled), [`UXListView`](UXListView), [`UXMenuBar`](UXMenuBar), [`UXProgressIndicator`](UXProgressIndicator), [`UXScrollPane`](UXScrollPane), [`UXSeparator`](UXSeparator), [`UXSlider`](UXSlider), [`UXSpinner`](UXSpinner), [`UXSplitPane`](UXSplitPane), [`UXTableView`](UXTableView), [`UXTabPane`](UXTabPane), [`UXTextInputControl`](UXTextInputControl), [`UXTreeView`](UXTreeView).
10+
11+
---
12+
13+
#### Свойства
14+
- `->`[`tooltip`](#tooltip-uxtooltip) - _подсказка_
15+
- `->`[`tooltipText`](#tooltipText) - _текст подсказки_
16+
- `->`[`contextMenu`](#contextmenu) - _контекстное меню_
17+
- См. у класса родителя [`UXRegion`](UXRegion).
18+
19+
#### Методы
20+
- См. у класса родителя [`UXRegion`](UXRegion).
21+
22+
---
23+
24+
## Свойства
25+
26+
### `tooltip` ([UXTooltip](UXTooltip))
27+
Всплывающая подсказка для компонента, объект класса `UXTooltip`, по-умолчанию `null`, что означает отсутствие подсказки.
28+
```php
29+
$button->tooltip = new UXTooltip('Подсказка');
30+
```
31+
32+
---
33+
34+
### `tooltipText` (string)
35+
Всплывающая подсказка только в виде текста (строки).
36+
```php
37+
$button->tooltipText = 'Подсказка';
38+
```
39+
40+
---
41+
42+
### `contextMenu` ([UXContextMenu](UXContextMenu))
43+
Контекстное меню компонента, обычно показывается при клике на компонент правой кнопки мыши. По-умолчанию `null`, но не у всех компонентов, у некоторых есть системное контекстное меню.

UXFlatButton.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# UXFlatButton
2+
3+
- **class** <img src="https://cloud.githubusercontent.com/assets/1113915/22552153/c51aa54a-e968-11e6-9157-4153014038fd.png" align="top" /> `UXFlatButton` (`php\gui\UXFlatButton`) **extends** [`UXButtonBase`](UXButtonBase).
4+
```php
5+
use php\gui\UXFlatButton;
6+
```
7+
8+
Класс компонента для отображения плоских кнопок.
9+
10+
> Изображение компонента:
11+
12+
> ![image](https://cloud.githubusercontent.com/assets/1113915/22552238/1ad0109c-e969-11e6-9083-1493cd4a3e01.png)
13+
14+
---
15+
16+
#### Свойства
17+
- `->`[`color`](#color-uxcolor)
18+
- `->`[`hoverColor`](#hovercolor-uxcolor)
19+
- `->`[`clickColor`](#clickcolor-uxcolor)
20+
- `->`[`borderRadius`](#borderradius-double)
21+
- См. у класса родителя [`UXButtonBase`](UXButtonBase).
22+
23+
#### Методы
24+
- [Конструктор (`new`)](#__construct) `__construct`
25+
- См. у класса родителя [`UXButtonBase`](UXButtonBase).
26+
27+
---
28+
29+
## Свойства
30+
31+
### `color` ([UXColor](UXColor))
32+
Основной цвет кнопки.
33+
34+
--
35+
36+
### `hoverColor` ([UXColor](UXColor))
37+
Цвет кнопки при наведении курсора на неё.
38+
39+
--
40+
41+
### `clickColor` ([UXColor](UXColor))
42+
Цвет кнопки при клике на неё.
43+
44+
--
45+
46+
### `borderRadius` (double)
47+
Радиус закругления углов у кнопки, по-умолчанию `0`, что означает отсутствие закруглений.

UXHyperlink.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# UXHyperlink
2+
3+
- **class** <img src="https://cloud.githubusercontent.com/assets/1113915/23369179/8d17bd96-fd21-11e6-8115-54e6a64c63df.png" align="top" /> `UXHyperlink` (`php\gui\UXHyperlink`) **extends** [`UXButtonBase`](UXButtonBase).
4+
```php
5+
use php\gui\UXHyperlink;
6+
```
7+
8+
Класс компонента для отображения ссылок, без форматирования.
9+
10+
> Изображение компонента:
11+
12+
> ![image](https://cloud.githubusercontent.com/assets/1113915/23369290/ea1f13f4-fd21-11e6-9b38-9aaf28adb256.png)
13+
14+
---
15+
16+
#### Свойства
17+
- `->`[`visited`](#visited-bool).
18+
- См. у класса родителя [`UXButtonBase`](UXButtonBase).
19+
20+
#### Методы
21+
- [Конструктор (`new`)](#__construct) `__construct`
22+
- См. у класса родителя [`UXButtonBase`](UXButtonBase).
23+
24+
---
25+
26+
### `visited` (bool)
27+
Свойство возвращает `true`, если на ссылку уже кликали.
28+
29+
---
30+
31+
## Методы
32+
33+
### `__construct()`
34+
```php
35+
__construct(string $text = '', UXNode $graphic = null)
36+
```
37+
38+
```php
39+
$link = new UXHyperlink("Go to google.com");
40+
$link->on('action', function () {
41+
browse('http://google.com');
42+
});
43+
```

UXLabel.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# UXLabel
2+
3+
- **class** <img src="https://cloud.githubusercontent.com/assets/1113915/22618547/46438f0a-eaf0-11e6-8e88-689f576cb5b6.png" align="top" /> `UXLabel` (`php\gui\UXLabel`) **extends** [`UXLabeled`](UXLabeled).
4+
```php
5+
use php\gui\UXLabel;
6+
```
7+
8+
Класс компонента для отображения обычных текстов, без форматирования, с возможностью выбрать шрифт и иконку для текста. У класса есть потомок `UXLabelEx`, который добавляет функцию авторазмера.
9+
10+
> Изображение компонента:
11+
12+
> ![image](https://cloud.githubusercontent.com/assets/1113915/22618557/ac634d7a-eaf0-11e6-815d-ceaf89a07515.png)
13+
14+
---
15+
16+
#### Свойства
17+
- `->`[`labelFor`](#labelfor-uxnode)
18+
- `->`[`autosize`](#autosize-bool) (только у потомка `UXLabelEx`).
19+
- См. у класса родителя [`UXLabeled`](UXLabeled).
20+
21+
#### Методы
22+
- [Конструктор (`new`)](#__construct) `__construct`
23+
- См. у класса родителя [`UXLabeled`](UXLabeled).
24+
25+
---
26+
27+
## Свойства
28+
29+
### `labelFor` ([UXNode](UXNode))
30+
Привязка текста к определенному визуальному компоненту интерфейса. По-умолчанию `null`.
31+
32+
---
33+
34+
### `autosize` (bool)
35+
> Только у класса `UXLabelEx`.
36+
37+
Авторазмер текста, если включен, то ширина и высота компонента будут рассчитываться в зависимости от [текста](UXLabeled#text-string) компонента.
38+
39+
---
40+
41+
## Методы
42+
43+
### `_construct`
44+
```php
45+
__construct([$text = '', UXNode $graphic = null]) {}
46+
```
47+
Конструктор класса UXLabel.
48+
```php
49+
$icon = new UXImageView(new UXImage('path/to/image.png'));
50+
$label = new UXLabel('Текст компонента', $icon);
51+
```

0 commit comments

Comments
 (0)