Maikele Posted August 3, 2017 Posted August 3, 2017 (edited) После нажатие на кнопку, не хочет удаляться функция обработчика из события, что не так сделал? ( onClientRender пробовал ) function mainDx () dxDrawImage(xn, xv, wn, hv, "images/bground.png", 0, 0, 0, tocolor(255, 255, 255, 210), false)--#Фон dxDrawText("Войти", xn + 106, xv + hv - 84, 120, 27, tocolor(255, 255, 255, 225), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("Купить", xn + 238, xv + hv - 84, 120, 27, tocolor(255, 255, 255, 225), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("Сменить ключ", xn + 148, xv + hv - 47, 120, 27, tocolor(255, 255, 255, 225), 1.00, "default-bold", "left", "top", false, false, false, false, false) end buyButton = guiCreateButton( xn + 64, xv + hv - 90, 120, 27, 'Купить', false ) guiSetAlpha(buyButton, 0) guiSetVisible (buyButton, false ) addEventHandler( 'onClientGUIClick', root, function( btn ) if btn ~= 'left' then return false; end; if source == buyButton then --#Если нажать на кнопку "купить", то removeEventHandler("onClientPreRender", getRootElement(), mainDx); --#Удаляет основное окно guiSetVisible ( buyButton, false ) --#Удаляет кнопку addEventHandler("onClientPreRender", getRootElement(), HouseWindowDx); --#Открывается новое окно end end Edited August 3, 2017 by Maikele
CharlySHOMAN Posted August 5, 2017 Posted August 5, 2017 removeEventHandler("onClientPreRender", getRootElement(), mainDx) addEventHandler("onClientPreRender", getRootElement(), HouseWindowDx) У тебя названия функций разные. При removeEventHandler нужно использовать ту функцию, которую ты указывал в addEventHandler ---------------------------------------------------------------- addEventHandler( 'onClientGUIClick', root, function( btn ) А зачем ты прикрепляешь этот обработчик к корню? Гораздо легче будет, если вместо "root" указать саму кнопку ( buyButton ). И тогда условие if source == buyButton then не понадобится, т.к. событие будет запускаться только по нажатию на данную кнопку. 1
Maikele Posted August 5, 2017 Author Posted August 5, 2017 (edited) 8 hours ago, CharlySHOMAN said: Название разные, потому что у меня 2 окна. Открываешь одно окно, при нажатие на кнопку открывается другое, вот я и сделал так. addEventHandler( 'onClientGUIClick', root, function( btn ) if btn ~= 'left' then return false; end; if source == hm_gui['icon_buy'] then guiSetVisible( hm_gui['wnd_key_onBuy'], true ); guiSetText( hm_gui['onBuy_edit'], 'Ключ' ); guiSetInputEnabled( true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) addEventHandler("onClientPreRender", getRootElement(), houseBuyWindow) elseif source == hm_gui['icon_sale'] then guiSetVisible( hm_gui['wnd_key_onSale'], true ); guiSetText( hm_gui['onSale_edit'], 'Key' ); guiSetInputEnabled( true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) addEventHandler("onClientPreRender", getRootElement(), houseSaleWindow) elseif source == hm_gui['icon_key'] then guiSetVisible( hm_gui['wnd_key_onChange'], true ); guiSetText( hm_gui['onChange_edit_Old'], 'Old key' ); guiSetText( hm_gui['onChange_edit_New'], 'New key' ); guiSetText( hm_gui['onChange_edit_RepeatNew'], 'Repeat new key' ); guiSetInputEnabled( true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) addEventHandler("onClientPreRender", getRootElement(), houseKeyWindow) elseif source == hm_gui['icon_newowner'] then guiSetVisible( hm_gui['wnd_key_onNewOwner'], true ); guiSetText( hm_gui['onNewOwner_keyEdit'], 'Key' ); guiSetText( hm_gui['onNewOwner_nameEdit'], 'Account Name' ); guiSetInputEnabled( true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) addEventHandler("onClientPreRender", getRootElement(), houseNewOwnerWindow) elseif source == hm_gui['icon_destroy'] then guiSetVisible( hm_gui['wnd_onDestroy'], true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) end end ) Вот весь код. Если нажимаешь кнопку в основном окне, то основное окно должно скрываться, а новое открываться и т.д. UPD: Не два окна, их несколько Edited August 5, 2017 by Maikele
CharlySHOMAN Posted August 6, 2017 Posted August 6, 2017 20 hours ago, Maikele said: Название разные, потому что у меня 2 окна. Открываешь одно окно, при нажатие на кнопку открывается другое, вот я и сделал так. addEventHandler( 'onClientGUIClick', root, function( btn ) if btn ~= 'left' then return false; end; if source == hm_gui['icon_buy'] then guiSetVisible( hm_gui['wnd_key_onBuy'], true ); guiSetText( hm_gui['onBuy_edit'], 'Ключ' ); guiSetInputEnabled( true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) addEventHandler("onClientPreRender", getRootElement(), houseBuyWindow) elseif source == hm_gui['icon_sale'] then guiSetVisible( hm_gui['wnd_key_onSale'], true ); guiSetText( hm_gui['onSale_edit'], 'Key' ); guiSetInputEnabled( true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) addEventHandler("onClientPreRender", getRootElement(), houseSaleWindow) elseif source == hm_gui['icon_key'] then guiSetVisible( hm_gui['wnd_key_onChange'], true ); guiSetText( hm_gui['onChange_edit_Old'], 'Old key' ); guiSetText( hm_gui['onChange_edit_New'], 'New key' ); guiSetText( hm_gui['onChange_edit_RepeatNew'], 'Repeat new key' ); guiSetInputEnabled( true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) addEventHandler("onClientPreRender", getRootElement(), houseKeyWindow) elseif source == hm_gui['icon_newowner'] then guiSetVisible( hm_gui['wnd_key_onNewOwner'], true ); guiSetText( hm_gui['onNewOwner_keyEdit'], 'Key' ); guiSetText( hm_gui['onNewOwner_nameEdit'], 'Account Name' ); guiSetInputEnabled( true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) addEventHandler("onClientPreRender", getRootElement(), houseNewOwnerWindow) elseif source == hm_gui['icon_destroy'] then guiSetVisible( hm_gui['wnd_onDestroy'], true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) end end ) Вот весь код. Если нажимаешь кнопку в основном окне, то основное окно должно скрываться, а новое открываться и т.д. UPD: Не два окна, их несколько hm_gui это таблица из кнопок? Я тут посмотрел твой первый пост. Там ты скрываешь кнопку guiSetVisible (buyButton, false ). От скрытой кнопки разве будет запускаться событие? Вроде как нет. Может в этом то и проблема, то что кнопки все скрыты. Вообще событие onClientGUIClick запускается? Если нет, то проблема скорее всего в этих скрытых кнопках 1
Maikele Posted August 6, 2017 Author Posted August 6, 2017 (edited) 2 hours ago, CharlySHOMAN said: hm_gui это таблица из кнопок? Я тут посмотрел твой первый пост. Там ты скрываешь кнопку guiSetVisible (buyButton, false ). От скрытой кнопки разве будет запускаться событие? Вроде как нет. Может в этом то и проблема, то что кнопки все скрыты. Вообще событие onClientGUIClick запускается? Если нет, то проблема скорее всего в этих скрытых кнопках 1. Не-а, думаю не в этом дело, т.к. у меня есть функция > кнопка "закрыть", т.е. нажимаешь и все закрывается. hm_gui['btn_close'] = guiCreateButton( xn+350, xv + hv - 260, 25, 20, 'X', false ); guiSetAlpha(hm_gui['btn_close'], 0) guiSetVisible ( hm_gui['btn_close'], false ) addEventHandler( 'onClientGUIClick', hm_gui['btn_close'], function( btn ) if btn ~= 'left' then return false; end; triggerServerEvent( 'setFrozen', me, false ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) --#Кнопки guiSetVisible ( hm_gui['icon_buy'], false ) --#Текст guiSetVisible ( hm_gui['label_price'], false ) showCursor( false ); end, false ); А именно закрыть при нажатие на "купить", не закрывается.. 2. onClientGUIClick запускается) Edited August 6, 2017 by Maikele
Maikele Posted August 6, 2017 Author Posted August 6, 2017 Кстати, возможно понял в чем проблема ( хотя не уверен ), но когда убираю с позиции кнопку, то работает........
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now