Jump to content

Проблема с CEF браузером, помогите плиз


mrevens

Recommended Posts

Появились проблемы при работе со скриптом, при последующем открытие и закрытии окна браузера, слетаю анимации на сайте и т.п. Как сделать, что бы при следующем открытии на кнопку , браузер перезапускался ? А еще нужно бы добавить управление клавиатурой, а то не работает ввод текста и т.п. Помогите пожалуйста!

Вот сам код https://pastebin.com/hrE9tknM

Edited by mrevens
Ошибся в коде
Link to comment
  • Scripting Moderators

?.

7 hours ago, mrevens said:

Как сделать, что бы при следующем открытии на кнопку , браузер перезапускался ?

Есть функция reloadBrowserPage, которая позволяет перезагрузить любую страницу.
Если слетают анимации, возможно проблема в самом коде веб-страницы, но эта функция поможет.

7 hours ago, mrevens said:

А еще нужно бы добавить управление клавиатурой, а то не работает ввод текста и т.п.

Нужно использовать focusBrowser для фокусировки браузера и появится возможность ввода.

По коду, если нужно скрыть HUD, достаточно указать all (всё перечисленное на странице вики) для функции setPlayerHudComponentVisible и тогда все компоненты скроются, а не дублировать каждый компонент отдельно.
С обработчиками событий можно поступить иначе, прикрепляя их только при отображении окна браузера, затем откреплять, когда они не нужны.
Ну и есть небольшая проблема с форматированием кода (включая табуляцию), что плохо для себя самого и другим страшно на такое смотреть.

Итоговый код будет примерно таким:

local screenWidth, screenHeight = guiGetScreenSize()
local webBrowser = createBrowser(screenWidth, screenHeight, true, true)
local state

addEventHandler("onClientBrowserCreated", webBrowser,
	function()
		loadBrowserURL(webBrowser, "http://mta/local/html/index.html")
	end
)

function webBrowserRender()
	dxDrawImage(0, 0, screenWidth, screenHeight, webBrowser, 0, 0, 0, tocolor(255, 255, 255, 255), true)
end

function webBrowserClickHandler(button, state)
	if state == "down" then
		injectBrowserMouseDown(webBrowser, button)
	else
		injectBrowserMouseUp(webBrowser, button)
	end
end

function webBrowserCursorMove(relativeX, relativeY, absoluteX, absoluteY)
	injectBrowserMouseMove(webBrowser, absoluteX, absoluteY)
end

bindKey("F3", "down",
	function()
		state = not state
		if state then
			showCursor(true)
			setPlayerHudComponentVisible("all", false)
			reloadBrowserPage(webBrowser)
			focusBrowser(webBrowser)
			addEventHandler("onClientRender", root, webBrowserRender)
			addEventHandler("onClientClick", root, webBrowserClickHandler)
			addEventHandler("onClientCursorMove", root, webBrowserCursorMove)
		else
			showCursor(false)
			setPlayerHudComponentVisible("all", true)
			removeEventHandler("onClientRender", root, webBrowserRender)
			removeEventHandler("onClientClick", root, webBrowserClickHandler)
			removeEventHandler("onClientCursorMove", root, webBrowserCursorMove)
		end
	end
)

 

  • Thanks 1
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...