2010-11-30 65 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上發佈一個示例) - 請通過評論這個答案來告訴我:)