Flash - 具有动态加载的影片剪辑的滚动区域

时间:2009-04-13 19:48:52

标签: flash actionscript-3 scrollbars

我正在构建一个Flash项目,该项目创建一个菜单系统,其中包含动态加载的菜单项本身的影片剪辑。

我想要一个滚动条出现,一旦菜单有足够的项目,它比菜单区域大。

我在想我可以在菜单区域上放一个遮罩,并将影片剪辑放在遮罩内上下滚动的控件上,但是动画加载的影片剪辑似乎没有出现在遮罩中

我已经在互联网上搜索了这个,但是我能找到的所有滚动条教程都处理文本区域而不是动态加载的影片剪辑区域。

有没有人知道一个很好的教程,或者有一个优雅的方法,所以我不必做一堆数学黑客让它工作?

由于

1 个答案:

答案 0 :(得分:1)

不确定你到底发生了什么。

我刚刚使用Flash CS3 / AS3进行了快速测试,并且在面具(滚动框的底部)内移动了加载的项目。

首先,我创建了一个Mask图层,然后创建了一个新图层作为蒙版的子图层。我在Mask层子项中添加了一个新的空MovieClip。我将这个MovieClip命名为'mcItems'。

然后我附上了下面的框架脚本(当然最好使用Class)。

    for (var i:Number=0; i < 3; ++i)
    {
        var loader:Loader = new Loader();
        loader.load(new URLRequest('Content.swf'));
        mcItems.addChild(loader);
        loader.x = i * 120;
    };
    function update (event:Event)
    {
        mcItems.x = 120*Math.sin(getTimer()/500) - 60;
    };
    addEventListener(Event.ENTER_FRAME, update);

现在,Content.swf只是一个120x120像素的灰色框。我的面具是240x120。执行时,将加载3个Content.swf框并按预期在屏蔽区域内滑动。

至于滚动条代码,我不确定你的'数学黑客'是什么意思,但基本原则是你从一组单位转换到另一组。您正在将“蒙版宽度/加载了”单位的总项目转换为“滚动手柄宽度/滚动条宽度”单位。

我建议您查看相应的手册页,以澄清上面使用的代码。

此致 坦。