3

我有一个名为 Obstacle 的组件,我使用 addAndMakeVisible 和 setBounds 函数将它用作 mainContentComponent 中的组件。我希望在我的窗口上滚动这个障碍组件,关于时间。我正在使用计时器和 setBounds 函数来执行此操作。

我意识到使用 setBounds 每次都会调用绘制函数,并且每次调用绘制函数时都会创建我的组件。我想使用 viewPort 类并使用 setViewedComponent 类将我的组件传递给视口对象。我使用了 API,但没有多大帮助。有人可以指出如何使用 ViewPort 来在窗口中滚动我的 juce::component 的示例吗?

非常感谢。

4

1 回答 1

3

您认为应该Viewport::setViewedComponent用于此目的是正确的。

例如:

myViewport.setViewedComponent (new MyComponent());

视口将为您处理组件的生命周期。

您没有确切说明您遇到了什么问题,但一个常见的错误是忘记设置查看组件的大小。您可以Component::setSize在要查看的班级内执行此操作。

例如:

MyComponent::MyComponent()
{
    setSize (100, 100);
}

更多信息Viewport可以在这里找到。
更多信息Component可以在这里找到。

于 2015-10-18T17:23:47.000 回答