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;