2011-05-31 71 views
0

我正在使用以下代碼...我只在可拖動動畫片段正在移動時才運行功能Food_scroll_ratio(),而不是在剛剛按下但不能解決問題時如何操作它。AS2:拖動閃光燈運行功能

onClipEvent (load) { 
    Symptoms_sliders = new Array(this._parent.slider1.slider, this._parent.slider2.slider, this._parent.slider3.slider, this._parent.slider4.slider, this._parent.slider5.slider); 
    Food_sliders = new Array(this._parent.slider6.slider, this._parent.slider7.slider, this._parent.slider8.slider, this._parent.slider9.slider); 
    for (i=0; i<Food_sliders.length; i++) { 
     Food_sliders[i]._y = 75; 
    } 
    is_scrolling = 0; 
    function Food_scroll_ratio() { 
     init_scroll_diff = init_scroll_num-init_scroll._y; 
     Slider_ratio = new Array(); 
     totalLeft = 100-(100-init_scroll._y); 
     for (i=0; i<Food_sliders.length; i++) { 
      if (Food_sliders[i] != init_scroll) { 
       slider_pos = Food_sliders[i]._y; 
       percentageOf = (init_slider_pos[i]/totalLeft)*100; 
       percentageMultiplier = 100/percentageOf; 
       scroll_change = Math.abs(init_scroll_diff)/percentageMultiplier; 
       trace(scroll_change); 
       if (init_scroll_diff>0) { 
        Food_sliders[i]._y = slider_pos+scroll_change; 
       } 
       if (init_scroll_diff<0) { 
        Food_sliders[i]._y = slider_pos-scroll_change; 
       } 

      } 
     } 
    } 
} 
onClipEvent (enterFrame) { 
    for (i=0; i<Food_sliders.length; i++) { 
     Food_sliders[i].onMouseDown = function() { 


     }; 
     Food_sliders[i].onPress = function() { 
      startDrag(this, false, 0, 100, 0, 0); 
      init_scroll_num = this._y; 
      init_scroll = this; 
      is_scrolling = 1; 
      init_slider_pos = new Array(); 
      init_slider_pos.push(100-Food_sliders[0]._y); 
      init_slider_pos.push(100-Food_sliders[1]._y); 
      init_slider_pos.push(100-Food_sliders[2]._y); 
      init_slider_pos.push(100-Food_sliders[3]._y); 
     }; 
     Food_sliders[i].onRelease = Food_sliders[i].onReleaseOutside=function() { 
      stopDrag(); 
      is_scrolling = 0; 
     }; 

    } 
    if (is_scrolling == 1) { 
     Food_scroll_ratio(); 
    } 
} 

幫助表示讚賞歡呼

解決

感謝我用夾子事件和while循環相結合的OnMouseMove,如下圖所示:

while (_global.init_moved != init_scroll._y) { 
      for (i=0; i<Food_sliders.length; i++) { 
       if (Food_sliders[i] != init_scroll) { 
        slider_pos = Food_sliders[i]._y; 
        percentageOf = ((100-init_slider_pos[i])/totalLeft)*100; 
        percentageMultiplier = 100/percentageOf; 
        trace(percentageMultiplier); 
        if (init_scroll_num == 0) { 
         scroll_change = Math.round(Math.abs(init_scroll_diff/3)); 
        } else { 
         scroll_change = Math.round(Math.abs(init_scroll_diff)/percentageMultiplier); 
        } 
        if (percentageOf == Infinity) { 
         Food_sliders[i]._y = 100; 
        } else if (init_scroll_diff>0) { 
         Food_sliders[i]._y = init_slider_pos[i]+scroll_change; 
        } else if (init_scroll_diff<0) { 
         Food_sliders[i]._y = init_slider_pos[i]-scroll_change; 
        } 

       } 
      } 
      _global.init_moved = init_scroll._y; 

     } 

回答

0

您應該使用的OnMouseMove而不是onEnterFrame拖動或它會變得不穩定!如果你檢查onMouseMove + onMouseDown,那也可以解決你的問題。或者,您也可以使用內置的onDrag。