oFx:使用 mouseEvent 初始化 class 实例
oFx: initialising class instance with mouseEvent
如果我 运行 这个代码,它会给我一个 Thread 1: EXC_BAD_ACCESS
。
在 topNav.h
文件中:
vector<indicatorButton> indicators;
并在 topNav.cpp
文件中
void topNav::setup(ofVec2f p, int n , int *appState) {
// ... other vars here
for(int i = 1 ; i <= quantityOfPages ; i++){
indicators[i-1].setup(i, ofVec2f(padding.x + spacing * i, padding.y ), appState );
}
}
并在 indicatorButton.cpp 文件中:
indicatorButton::indicatorButton() {
bRegisteredEvents = false;
}
void indicatorButton::setup(int i, ofVec2f p, int *appState) {
// this will enable our circle class to listen to the mouse events.
if(!bRegisteredEvents) {
ofRegisterMouseEvents(this);
bRegisteredEvents = true;
}
// other variables...blah blah.
}
如果我删除 ofRegisterMouseEvents()
它 运行 没问题。除了我没有注册鼠标事件:/
我在这里做错了什么?
指点!
需要对此进行更改:
vector<indicatorButton> indicators;
至此
vector<indicatorButton *> indicators;
如果我 运行 这个代码,它会给我一个 Thread 1: EXC_BAD_ACCESS
。
在 topNav.h
文件中:
vector<indicatorButton> indicators;
并在 topNav.cpp
文件中
void topNav::setup(ofVec2f p, int n , int *appState) {
// ... other vars here
for(int i = 1 ; i <= quantityOfPages ; i++){
indicators[i-1].setup(i, ofVec2f(padding.x + spacing * i, padding.y ), appState );
}
}
并在 indicatorButton.cpp 文件中:
indicatorButton::indicatorButton() {
bRegisteredEvents = false;
}
void indicatorButton::setup(int i, ofVec2f p, int *appState) {
// this will enable our circle class to listen to the mouse events.
if(!bRegisteredEvents) {
ofRegisterMouseEvents(this);
bRegisteredEvents = true;
}
// other variables...blah blah.
}
如果我删除 ofRegisterMouseEvents()
它 运行 没问题。除了我没有注册鼠标事件:/
我在这里做错了什么?
指点! 需要对此进行更改:
vector<indicatorButton> indicators;
至此
vector<indicatorButton *> indicators;