Flash ActionScript 2 Slider Issue - PullRequest
       7

Flash ActionScript 2 Slider Issue

0 голосов
/ 01 ноября 2011

Я нашел скрипт для создания слайдера в AS2.Проблема в том, что скрипт постоянно проверяет, в каком фрейме я нахожусь, и мне это нужно, чтобы этого не делать.Я думаю, что мне нужен способ, чтобы он проверил один раз и установил номер кадра, затем, если я сдвину ползунок, чтобы начать проверку в течение этого времени, и когда это будет сделано, сдвиньте ползунок, чтобы прекратить проверку снова.Этот ползунок будет использоваться в баннерной рекламе, обслуживаемой через Pointroll.

Проблема заключается в том, что при постоянной проверке он будет мешать отслеживанию в 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();

Ответы [ 2 ]

0 голосов
/ 01 ноября 2011

Ну, первая проблема, которую я вижу, это то, что вы устанавливаете 'onEnterFrame' каждые 'onPress', но не удаляете 'onEnterFrame', когда пользователь отпускает кнопку.

Я думаю, что лучший способ будетустановка обработчика перемещения мыши, когда пользователь перемещает (перетаскивает) ручку, и выполняет необходимые действия внутри этого обработчика onMouseMove, и удаляет (отключает) обработчик onMouseMove после того, как пользователь отпускает кнопку.

0 голосов
/ 01 ноября 2011

Функция onEnterFrame будет срабатывать каждый раз, когда кадр воспроизводится точкой воспроизведения.Если ваша частота кадров составляет 30 кадров в секунду, и точка воспроизведения останавливается на этом кадре, это означает, что код в onEnterFrame выполняется 30 раз в секунду.

Если вам не нужен / не нужен код для выполнения этогомного, возьмите это из onEnterFrame.

Не имея большего контекста, трудно дать вам более конкретный совет, чем этот.

...