我一直在玩弄杂乱无章的东西,对如何与演员和儿童演员一起工作有点困惑。让我们从一个让我有些困惑的简单示例开始。我创建了两个 Clutter::Rectangles (我使用 Cluttermm 绑定)并使第二个成为第一个的孩子:
Glib::RefPtr<Clutter::Rectangle> rect = Clutter::Rectangle::create();
rect->set_color(Clutter::Color(255, 0, 0, 255));
rect->set_size(100, 100);
rect->set_position(500,500);
rect->show();
stage->add_actor(rect);
Glib::RefPtr<Clutter::Rectangle> rect2 = Clutter::Rectangle::create();
rect2->set_color(Clutter::Color(0, 255, 0, 255));
rect2->set_size(100, 100);
rect2->set_position(0,0);
rect2->set_parent(rect);
rect2->show();
据我了解,这应该使两个矩形可见,但是 rectangle2 不是。尽管将其设为第一个矩形的父级,但仍无处可寻。为什么是这样?set_parent()的真正含义是什么?
这种混乱有点深。今天早些时候,我尝试编写一个更复杂的复合actor,它由许多actor(例如矩形等)组成。虽然从视觉上看,这项任务是成功的,但在尝试将事件回调附加到这些子actors 时,我遇到了严重的困难——事实上,据我所知,事件永远不会到达父actors 的子代。
这让我很困惑。例如,如何使用混乱创建一个按钮框?您是否必须创建自己的演员检测/事件管理系统,或者是通过将孩子添加到舞台而不是实际的父母来将事件回调连接到子演员的唯一方法?
这让我非常困惑,考虑到目前缺乏文献,任何帮助将不胜感激!