繁体   English   中英

Flash:ActionScript 3.0 MovieClip宽度

[英]Flash: ActionScript 3.0 MovieClip Widths

请帮助我,我完全不知道AS3.0具有MovieClip宽度。

基本上,我正在编码一个菜单,如果屏幕上没有太多项目,则不使用滚动条,而是使用放大效果,从而允许用户使用鼠标在菜单上滚动。

目前,我的问题是调整MovieClips的宽度(它是一个水平菜单)(菜单上的每个图标都是MovieClip)。

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

但这不是完整的问题,如果我将影片剪辑的宽度设置为2.8,它仍然会以正确的宽度显示。

只有在for循环之后会重置适当的图标宽度,然后重新设置我的“ reposition()”方法,图标才会显示出来。

我显然只是不了解AS3中的MovieClips或Numbers的某些方面,希望有人可以提供帮助。

“黑色”包含电影剪辑列表(菜单图标)。

这是所有出错的代码(当“ 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的图标,它仍然显示! 请帮助= [

如上面的注释中所述,使用代码示例很难说出任何具体信息,但是:
*恕我直言,将坐标和尺寸计算为int而不是Number是安全且方便的-永远不会看到半像素
*如果我是你,我将更改整个菜单的scaleXscaleY属性(或图标的父级)(如果不合适),而不是与每个孩子搞混

另外,如果您添加更多代码(或可能在wonderfl.net上发布示例)-请通过评论此答案让我知道:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM