JUCE ViewPort 如何

Posted

技术标签:

【中文标题】JUCE ViewPort 如何【英文标题】:JUCE ViewPort how to 【发布时间】:2015-10-12 23:48:30 【问题描述】:

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

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

非常感谢。

【问题讨论】:

我的回答对您有帮助吗?如果是,请将其标记为已接受或说明答案不充分的原因。 【参考方案1】:

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

例如:

myViewport.setViewedComponent (new MyComponent());

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

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

例如:

MyComponent::MyComponent()

    setSize (100, 100);


有关Viewport 的更多信息,请访问here。 有关Component 的更多信息,请访问here。

【讨论】:

以上是关于JUCE ViewPort 如何的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch 2 - 如何检查 ViewPort 中是不是存在项目

html5开发之viewport使用

html5开发之viewport使用

移动端布局最佳实践(viewport+rem)

两个viewport的故事(第一部分)

视口(viewport)原理详解之第一部分