2010-11-30 40 views
0

请帮助我,我完全失去了使用MovieClip宽度的AS3.0。Flash:ActionScript 3.0影片剪辑宽度

基本上,我编码一个菜单,而不是是否有在屏幕的项目太多有滚动条,采用了放大效应,使用户能够沿着使用鼠标滚动菜单。

我当时的问题是调整的影片剪辑的宽度(这是一个横向菜单)(菜单上的每个图标是一个MovieClip)。

如果宽度太小(不确定最低可以),则影片剪辑不会显示出来。

但是这不是全部的问题,如果我设置影片剪辑的宽度,以2.8它仍然显示,有正确的宽度。

这之后才是图标不显示一个for循环,其重置相应的图标宽度,然后我的“复位()”方法。

我显然只是不理解在AS3影片剪辑或数的几个方面,希望有人能提供帮助。

“黑色”包含动画片段列表(菜单图标)。

这里是一切错误代码(它出错时“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的图标,它仍然显示了!请帮助= [

如上述评论提到
+0

我不知道w,但是我会用调试器遍历代码,并在更改时查看所有值。 – AttackingHobo 2010-11-30 19:47:02

回答

0

,很难使用您的代码示例告诉任何具体的,但是:
*恕我直言,这是安全和方便易来计算坐标和尺寸为int,不Number - 半像素从未见过
*如果我是你,我会改变scaleXscaleY整个菜单的属性(或任何父母对你的图标),如果它不适合,而不是与每个孩子搞
如果你添加更多代码(或者可能在wonderfl.net上发布一个示例) - 请通过评论这个答案来告诉我:)