Войти
Urho3DФорумURHOSHARP

OnClickBegin(

#0
21:55, 11 авг. 2017

Кидайтесь чем угодно, но хуже уже не бывает)

Был вопрос от меня...

допустим есть надпись txt, как сделать подпись на клик, вызывающий метод myClick

    И ответ от Егора (Nagg):
txt.SubscribeToEvent("OnClickBegin", e => OnClick()) же :)

За что граменная благодарность! Но... я думал что подпись идет и на методы, в том числе как OnClickBegin,
а получается только на события, согласен "SubscribeToEvent" так и переводится... но и так подпись проста на них
DragMove += a => {...};

Объясните нубу, как работают (если работают) методы OnClickBegin, OnHover, OnKey, OnResze и т.п. с приставкой "On"?


#1
22:11, 11 авг. 2017
OnClickBegin => dragable = true;
OnClickEnd => dragable = false;
if (dragable) DragMove += a => {...};
Наверное как-так в псевдокоде...
#2
22:21, 11 авг. 2017

iKest
Мысль понятна, и вроде проста, и вроде смотрел этот вариант...
увы сейчас не смогу проверить в деле, завтра гляну.
Спасибо большое за отклик!

#3
23:58, 11 авг. 2017

Что имеется в виду под "как работают"? Рассказать как пробрасывются вызовы из c++ в .net? Или что интересует?

#4
10:56, 12 авг. 2017

GLoom
> Что имеется в виду под "как работают"?
Как их использовать в жизни (OnClickBegin, OnHover, OnKey, OnResize)? // ниже варианты не работают

OnClickBegin => dragable = true;
txt.SubscribeToEvent("OnClickBegin", e => OnClick()) //OnClickBegin не событие, а группа методов

Дело в том, что у меня костыль на данный момент- общий перехватчик нажатий, и  interface IMclick

ui.UIMouseClick += args => Ini.UIclick(args);
где распознаю объект от которого сигнал... жутко бесит такая реализация когда есть OnClickBegin
Пробовал и так:
        public override void OnClickBegin(IntVector2 position, IntVector2 screenPosition, int button, int buttons, int qualifiers, Cursor cursor) {
            base.OnClickBegin(position, screenPosition, button, buttons, qualifiers, cursor);
            new Msg("Урааа!");
        }

Так вот "Урааа!" мне никак не удается)

#5
18:09, 14 авг. 2017

Zamir
В Урхе обычно всё идет через события, и эти события хорошо прокидываются в шарп.
Но так же в урхе бывает необходимость переопределить (override) методы базового класса.
К сожалению такое переопределение не работает в UrhoSharp (переопределение метода из С++ в классе в C#) т.к. это весьма нетривиальная задача, я только ручками смог это сделать для пары методов Node (типа OnNodeSet)
Так что лучше юзай события, если они есть. Методы OnXXX просурфейсились в сишарп но бесполезны в большинстве случаев.

#6
17:20, 15 авг. 2017

Nagg
> К сожалению такое переопределение не работает в UrhoSharp
Ну, на нет и суда нет) Хоть узнал чего ждать, а чего нет...

> Методы OnXXX просурфейсились в сишарп но бесполезны в большинстве случаев
Может их убрать к чертовой бабушке, они только с понтов сбивают все время))

#7
12:38, 17 авг. 2017

Zamir
можно, но не факт что все они бесполезны) возможно некоторые работают как ивенты, а возможно и как методы (т.е. есть логика в базовом классе)
надо проверять.

Urho3DФорумURHOSHARP

Тема в архиве.