请帮帮我,我在 AS3.0 中完全迷失了 MovieClip 宽度。
基本上,我正在编写一个菜单,如果屏幕上有太多项目,它不会有滚动条,而是使用放大效果,允许用户使用鼠标沿着菜单滚动。
我目前的问题是调整 MovieClips 的宽度(它是一个水平菜单)(菜单上的每个图标都是一个 MovieClip)。
如果宽度太小(不确定它可以达到的最低值),则影片剪辑不会显示。
但这还不是问题的全部,如果我将影片剪辑的宽度设置为 2.8,它仍然会以正确的宽度显示出来。
只有在 for 循环重置适当的图标宽度之后,然后我的“reposition()”方法才会显示图标。
我显然只是不了解 AS3 中 MovieClips 或 Numbers 的某些方面,希望有人能提供帮助。
'black' 包含影片剪辑列表(菜单图标)。
这是所有出错的代码(当 'iconWidth' 非常小时会出错):
//if there are icons to the left
if ((s-leftEffect) > 1){
//loop over all icons to the left
for (var lu:int = 0; lu <= s-leftEffect; lu++){
//set the icon's new width
black[lu].width = iconWidth;
}
}
//if there are icons to the right
if ((s+rightEffect) < numShowing){
//loop over all icons to the right
for (var ru:int = s+rightEffect; ru < numShowing; ru++){
//set the icon's new width
black[ru].width = iconWidth;
}
}
reposition();
}
function reposition(){
if (numShowing > 16){
//set the first menu icon to the left of its container
black[0].x = 0;
//for all icons in the menu
for (var i:int = 1; i<numShowing; i++){
//set position according to width
black[i].x = black[i-1].x + black[i-1].width;
}
}
}
例如,如果 iconWidth 计算为 2.8,则两个 for 循环将调整所有应调整为 2.8 的图标的大小。
然后重新定位将每个图标彼此相邻。
但问题是如果 iconWidth 太小,重新定位不起作用。
但是,在重新定位时,如果我手动添加一条线来设置当前宽度为 50 到 2.8 的图标,它仍然会显示!请帮忙=[