ScrollPane 不适用于 as3 中的动态内容

发布于 2025-01-06 00:16:56 字数 232 浏览 0 评论 0原文

scrollPane.setSize(400,400);
scrollPane.source=emptyc;

其中emptyc是一个容器,我在其中动态添加内容(即通过addChild方法)不起作用。它根本不滚动。

如果我使用scrollPane作为容器本身添加内容(即:

scrollPane.addChild(myChild);
scrollPane.setSize(400,400);
scrollPane.source=emptyc;

Where emptyc is a container in which I add content dynamically (i.e. by addChild method) doesn't work. It simply doesn't scroll at all.

Neither does work if I add content using scrollPane as a container itself (i.e.:

scrollPane.addChild(myChild);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

贪恋 2025-01-13 00:16:56

问题是 ScollPane 实例不知道您已更新其内容(向emptyc/等添加了子项),因此您需要告诉它 update()

下面是一个基本示例:

var b:BitmapData = new BitmapData(2,2,false,0xFFFFFF);
b.setPixel(0,0,0);b.setPixel(1,1,0);
var s:Shape = new Shape();

var sp:ScrollPane = new ScrollPane();
sp.scrollDrag = true;
sp.source = s;
addChild(sp);


s.graphics.beginBitmapFill(b);
s.graphics.drawRect(0,0,1000,1000);
s.graphics.endFill();
sp.update();

请注意,如果您注释掉 sp.update();,您会得到与您提到的相同的行为。
另外,文档中有一个示例。

The problem is the ScollPane instance has no clue you've updated it's content (added a child to emptyc/etc.) so you need to tell it to update().

Here's a basic example:

var b:BitmapData = new BitmapData(2,2,false,0xFFFFFF);
b.setPixel(0,0,0);b.setPixel(1,1,0);
var s:Shape = new Shape();

var sp:ScrollPane = new ScrollPane();
sp.scrollDrag = true;
sp.source = s;
addChild(sp);


s.graphics.beginBitmapFill(b);
s.graphics.drawRect(0,0,1000,1000);
s.graphics.endFill();
sp.update();

Notice that you get the same behaviour you mention if you comment out sp.update();.
Also, there's an example in the documentation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文