Глобалы хоста
Глобалы, предоставляемые самим рантаймом хоста (веб-вьювер, iOS, Android, десктоп), а не внедряемые SDK. Доступны в каждом проекте, в каждом движке.
Кадровый цикл
setLoop(fn: (dt: number) => void): number
clearLoop(id: number): voidСрабатывает каждый отрисованный кадр. dt — секунды с прошлого кадра (~0.016 при 60 fps) — для
движения, независимого от кадра, масштабируй на него: position += speed * dt.
const id = setLoop(dt => {
if (Input.key('ArrowRight')) player.x += 120 * dt
})цикл работает, пока его не остановят. Всё запущенное в onOpen экрана должно останавливаться в его
onClose, иначе утечёт при навигации.
Таймеры
setTimeout(fn, ms?): number
setInterval(fn, ms?): number
clearTimeout(id): void
clearInterval(id): voidТа же семантика, что в вебе, миллисекунды. (Для контраста: dt у setLoop — секунды.)
Консоль
console.log(...data) / console.warn(...) / console.info(...) / console.error(...)Единственные существующие методы консоли — нет console.table, console.time и т. п.
asset() — ресурсы проекта
asset(path: string): string // макрос времени компиляции — path должен быть строковым ЛИТЕРАЛОМПереписывается бандлером в импорт ресурса для этого файла; возвращаемая строка — URL собранного ассета. Эквивалентно импорту файла:
import hero from './hero.png' // то же самое
const tex = await Texture2D.load(asset('./hero.png'))поскольку это макрос, asset(someVariable) — ошибка сборки. Удалённым https://… URL он не нужен —
передавай их обычными строками.
Константы углов
DEG2RAD // π / 180 — подставляется при компиляции
RAD2DEG // 180 / πИспользуй их на границе радианы↔градусы (см. Соглашения).
Style<T> (тип только для редактора)
const preset: Style<UIButton> = { bgColor: '#333', borderRadius: 12 }Разрешается в частичный объект стиля, который принимает el.style(...) — для типизации
переиспользуемых пресетов стиля. Чистый тип: в рантайме не существует.