2011-11-01 63 views
0

我發現了一個在AS2中製作滑塊的腳本。問題在於腳本經常檢查我看到的是什麼框架,我需要它不這樣做。我想我需要的是一種方法來檢查一次並設置幀編號,然後如果我滑動滑塊以在該時間內開始檢查並且完成滑動滑塊以停止再次檢查。此滑塊將用於通過Pointroll投放的橫幅廣告。Flash ActionScript 2 Slider問題

問題在於,經常檢查它是否會干擾pointroll中的跟蹤。任何人有任何想法?


我的動作:

knob._x = track._x + track._width/3.75; 
knob._y = track._y; 
totalFrame = 79; 

//var ratio:Number = track._width/50; 

knob.onPress = function():Void { 
//var vertical:Number = track._y + (track._height/2); 
startDrag(knob,0,track._x,track._y,track._width+track._x-this._width,track._y); 
this.onEnterFrame=function(){ 
    fNum=Math.ceil((this._x-track._x)/(track._width-this._width)* (this._totalframes)); 
    if(fNum <= 2) fNum = 3; 
    this.gotoAndStop(fNum); 
} 
} 
knob.onRelease = function():Void { 
this.stopDrag(); 
delete this.onMouseMove; 
} 
//knob.onReleaseOutside = knob.onRelease; 


onEnterFrame=function(){ 
fNum=int((knob._x-track._x)/(track._width-knob._width)*(totalFrame))+2; 
trace(fNum); 
this.gotoAndStop(fNum); 
} 

/* function updateKnobOutput():Void { 
    trace((knob._x - track._x)/ratio); 
}*/ 

stop(); 

回答

0

onEnterFrame功能會解僱每次幀被播放頭經過的時間。如果幀速率爲30fps,並且播放頭在此幀上停止,則表示onEnterFrame中的代碼每秒執行30次。

如果您不需要/希望代碼執行那麼多,請將其從onEnterFrame中取出。

沒有更多的上下文,很難給你任何更具體的建議。

+0

所以我應該刪除onEnterFrame並給該函數一個名字呢?我會試試看。 – Robbiegod

+0

嗯,刪除onEnterFrame打破了滑塊....意思是如果我刪除onEnterFrame,發佈我的SWF,腳本不再知道中間框架在哪裏,滑動滑塊不會做任何事情。我試圖完成的是一個滑塊,從frame1移動到80或某些範圍的幀。我將動畫片段「軌道」綁定到剪輯中的全部幀數。我還將動畫片段「旋鈕」綁定到「軌道」,這樣左右滑動可以在時間軸上上下滑動。 – Robbiegod

0

嗯,我看到的第一個問題是,你在'onPress'上設置'onEnterFrame',但是當用戶釋放按鈕時不要刪除'onEnterFrame'。

我認爲最好的辦法將被設置鼠標移動處理器時,用戶移動(拖)旋鈕,並經過用戶釋放按鈕,執行「的OnMouseMove」處理程序中需要採取行動,並刪除(禁用)「的OnMouseMove」處理程序。