- Dokumentacja
- Funkcje klienta
- createBrowser
Funkcja
createBrowser
Tworzy przeglądarkę, czyli stronę HTML renderowaną do tekstury. Rysujesz ją przez dxDrawImage, a adres ładujesz dopiero w zdarzeniu onClientBrowserCreated.
Składnia
browser createBrowser(int width, int height, bool isLocal [, bool transparent = false])Argumenty
widthint- Szerokość strony w pikselach.
heightint- Wysokość strony w pikselach.
isLocalbooltrue: strony z plików zasobów (http://trilogy/local/...),false: strony z internetu z domen dozwolonych przez serwer i gracza.transparentbool, opcjonalny = false- Czy przezroczyste tło strony ma być przezroczyste w grze.
Zwraca
Element przeglądarki albo false.
Przykład
Pełnoekranowy interfejs w HTML, który wysyła zdarzenie do Lua.
local sw, sh = guiGetScreenSize()
local browser = createBrowser(sw, sh, true, true)
addEventHandler("onClientBrowserCreated", browser, function()
loadBrowserURL(browser, "http://trilogy/local/html/index.html")
end)
addEventHandler("onClientRender", root, function()
dxDrawImage(0, 0, sw, sh, browser)
end)
setBrowserFunction(browser, "login", function(login, password)
triggerServerEvent("tryLogin", localPlayer, login, password)
end)
<meta>
<script src="client.lua" type="client" />
<file src="html/index.html" protected="true" />
<file src="html/app.js" protected="true" />
<file src="html/logo.png" />
</meta>
Uwagi
Nie czeka na przeglądarkę. createBrowser od razu zwraca element, nawet gdy proces przeglądarki dopiero startuje (pierwsze wywołanie po wejściu na serwer). Ustawienia i adres podane wcześniej trafią do strony, gdy proces wstanie, a gotowość zgłasza onClientBrowserCreated. Można ją więc tworzyć w onClientResourceStart.
Osobny proces. Strony renderuje osobny proces Chromium. Gdy strona padnie, gra działa dalej, a przeglądarka wraca z ostatnim adresem.
Zaszyfrowane strony. <file src="html/index.html" protected="true" /> zapisuje plik strony (.html .htm .js .mjs .cjs .css .json .svg) w cache gracza zaszyfrowany, tak jak skrypty klienta. Treść dostaje tylko przeglądarka zasobu; fileOpen i fileCopy takiego pliku nie otworzą. Strona i tak musi dostać czysty kod, więc w narzędziach deweloperskich da się go podejrzeć.
Zobacz też
loadBrowserURLŁaduje adres w przeglądarce. Przeglądarka lokalna otwiera pliki zasobów, a zdalna strony z dozwolonych domen.onClientBrowserCreatedPrzeglądarka jest gotowa (proces stron wystartował) i można w niej ładować adres.guiCreateBrowserTworzy przeglądarkę jako kontrolkę GUI. Mysz, kółko i klawiatura trafiają do strony same. Element przeglądarki doloadBrowserURLdostajesz przezguiGetBrowser.dxDrawImageRysuje obraz (plik PNG/JPG zasobu, teksturę, render target, przeglądarkę albo kamerę) w prostokącie ekranu, z opcjonalnym obrotem i zabarwieniem.