Вы находитесь на странице: 1из 4

Features Business Explore Pricing This repository Search Sign in or Sign up

jphp-compiler / develnext Wa tch 15 Sta r 35 Fo rk 18

Code Issues 8 Pull requests 0 Projects 3 Wiki Pulse Graphs

Переход с DevelStudio
Dmitriy Zayceff edited this page 2 days ago · 9 revisions

О возможностях DevelNext, которых нет в DevelStudio Pages 5 9


Как обращаться к компонентам?
Чем заменить переменную $self в событии объекта?
Как добавить невизуальный компонент по типу таймера? PHP API
Чем заменить константу DOC_ROOT? Описание стандартных
классов и функций php.

О возможностях DevelNext, которых нет в DevelStudio API


UXNode, UXList, UXImage,
Общее описание и знакомство с новыми возможностями DevelNext, которых не было в UXColor, UXScreen, UXTooltip,
DevelStudio. UXFont, В с е к лас с ы.

Если вы пришли в DevelNext из develstudio, то вам нужно знать о новых механизмах создания F.A.Q.
программ в этой новой среде программирования.
IDE, Среда
1. Поведения - позволяют изменить логику работы с компонентами, похожи на свойства. Переход с DevelStudio
2. События с параметрами - события могут быть навешены с параметром, например на Переход с GameMaker
клавишу Enter. Язык PHP
Файловая система
3. Конструктор событий - визуальное программирование блоками, возможность
Дата и время
сконвертировать это все в скрипт.
UI, Дизайн
4. Игровые возможности - физический 2D движок, спрайты, игровые сцены, клонирование. JavaFX CSS
5. Модули - в develnext все невизуальные компоненты вынесены в отдельные модули, Игры и развлечения
которые надо подключать к формам. Интернет и сети
Аудио и видео
Поведения, behaviours Системные утилиты
Лаунчеры и оболочки
Эта возможность пришла из конструкторов игр Construct Classic и Construct 2 . Сама идея SQL, Базы данных
в том, что все объекты между собой равны и имеют одинаковые свойства, но для того, чтобы Разное
придать объекту новый функционал используют поведения. Почему нельзя просто добавить
объекту еще немного свойств, зачем это все выделять в поведения? Во-первых, поведений
Clone this wiki locally
много, если все это переводить в свойства будет неудобно в этом разбираться, их будет
слишком много. Во-вторых, поведения это не совсем свойства, они могут быть более https://github.com/jphp-compiler/develnext

функциональными.
C l o n e i n D e s kto p

В develnext, например, есть поведение для того, чтобы объект "Мигал", это поведения
анимации. А есть поведение для того, чтобы объектом можно было управлять стрелками
клавиатуры. И таких поведений очень много.

События с параметрами

Эта возможность пришла из конструктора игр Game Maker , например, в develstudio вам надо
было задать, чтобы при нажатии на клавишу Enter в поле для ввода открывалась ссылка в
браузере. Это приходилось делать вручную, создавать событие на вообще любое нажатие
клавиши и уже внутри через условие проверять - какая клавиша была нажата.

В develnext это делается проще, через события с параметрами. В среде вы можете создать
индивидуальное событие на нажатие именно клавиши Enter , любых других клавишь и даже
сразу сочетаний клавишь, по типу Ctrl + X , Alt + ... и т.д.
Тоже самое относится к событиям столкновения, скроллинга, мышки и некоторым другим,
везде есть параметр.

Конструктор событий

Такое есть в Game Maker и во многих других конструкторах. В develstudio была немного
похожая возможность, там были иконки в php редакторе справа, которые позволяли
генерировать php код в удобном виде. В develnext тоже есть такие иконки, но они формируют
набор действий из блоков, это удобно для начинающих, к тому же всегда можно
сконвертировать и посмотреть какой код скрывают эти блоки. К сожалению, обратно
сконвертировать код в блоки невозможно.

Игровые возможности

Такого не было в develstudio. Что относится к игровым возможностям в develnext?

Событие "столкновение" и просчет столкновений


Игровые события "уничтожение", "клонирование", "выход за пределы" и др.
Спрайты и спрайтовый редактор, с поддержкой именнованных анимаций.
Игровые объекты и комнаты, в комнаты можно загружать сцены (другие формы).
Клонирование объектов, во время выполнения и создание клонов в редакторе.

Все это позволяет реализовать 2D игры разных жанров.

Модули

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

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

Не забывайте, чтобы подключить модуль к форме, есть свойство "Модули" у самой формы.

Как обращаться к компонентам?

Что использовать вместо c("button"), как обращаться к невизуальным компонентам вроде


таймера и многое другое.

В develstudio обращение к компонентов происходило через функцию c(), например c("button1").


В develnext это происходит немного иначе.

Простой случай

Например, вам необходимо просто вывести сообщение из поля ввода, в develstudio это
делалось так:

$text = c("edit1")->text;
alert($text);

В DevelNext это делается через $this :

$text = $this->edit1->text;
alert($text);

Сложная ситуация

Иногда возникает ситуация, когда название компонента нужно взять из строки, в DevelStudio с
этим у вас не было проблем, вы просто делали например c("button_$index") . А в develnext
это можно сделать так:

$button = $this->{"button_$index"}
Компоненты другой формы

Чтобы обратиться к компоненту из другой формы, в DevelNext необходимо использовать метод


->form() , например так:

$text = $this->form('Form2')->edit3->text;

Данный код аналогичен коду из develstudio $text = c("Form2->edit3")->text .

Невизуаль ные компоненты

В DevelNext все невизуальные компоненты вынесены в модули. К форме подключаются


модули вместе со всеми их компонентами. Обращение к компонентам модуля из формы
выглядит также как и обычно:

$this->timer->start();

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

Доступ к визуаль ным компонентам из модуля

Ситуация аналогичная, если модуль подключен к форме, то из модуля можно обращаться ко


всем компонентам его формы также через $this .

Чем заменить переменную $self в событии объекта?

В develstudio переменная $self указывала на текущий объект события, о том какая замена
есть в develnext.

В develnext в каждое событие передается специальный объект в переменной $event , которая


является объектом класса php\gui\event\UXEvent , через этот объект можно получить объект
события:

alert($event->sender->text);

Простыми словами, в develnext полный аналог $self это $event->sender .

Как добавить невизуальный компонент по типу таймера?

Статья о невизуальных компонентах в develnext, как их использовать и где добавить.

Используйте модули, например у вас изначально должен быть модуль MainModule в проекте, в
который вы можете добавить сколько угодно таймеров, диалогов и других модульных
компонентов. Этот модуль можно подключить к вашей форме через свойство Модули у самой
формы.

Не забывайте подключать модули к форме.

Из формы вам будут доступны все компоненты ее модулей через $this , а из модуля - все
компоненты его форм, тоже через $this .

Чем заменить константу DOC_ROOT?

Как получить относительный путь к запущенной программе?

В develnext нет похожей константы, но относительный путь программы можно легко получить
через сочетание символов ./ :
unlink('./file.txt'); // удаление файла рядом с программой

В общем-то это сочетание не обязательно, и вы можете обращаться к относительным путям


программы и без него:

unlink('file.txt');

Пути, которые начинаются НЕ с символа / или не с названия диска (например С: ),


считаются относительными.

Вернуться в начало

develnext.org (c) 2017

© 2017 GitHub, Inc. Terms Privacy Security Status Help Contact GitHub API Training Shop Blog About