2009-04-13 60 views
1

我正在构建一个Flash项目,该菜单系统使用动态加载的影片剪辑为菜单项自身创建菜单系统。Flash - 动态加载影片剪辑的滚动区域

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

我在想,我可以在菜单区域放一个遮罩,并将影片剪辑放在遮罩内上下滚动的位置,但动态加载的影片剪辑似乎不会出现在面具。

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

有没有人知道一个很好的教程,或者有一个建议,这样做的优雅方式,所以我不必做一堆数学黑客,使其工作?

谢谢

回答

1

不确定你究竟是什么。

我只是用Flash CS3/AS3做了一个快速测试,并且获取了加载的项目以在面罩(滚动框的底部)内移动。

首先,我创建了一个遮罩层,然后创建一个新层作为遮罩的子项。我向Mask层子添加了一个新的空MovieClip。我将这个MovieClip命名为“mcItems”。

然后,我附加了下面的框架脚本(当然使用类将是可取的)。

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框,并按预期在屏蔽区域内滑动。

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

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

Regards, Jotham。

+0

事实证明,我的文本框是动态的,除非包含字形,否则它们不会出现在掩码下。谢谢。 – 2009-04-14 01:31:53