Flash ActionScript 2滑块问题

时间:2011-11-01 14:47:27

标签: flash slider actionscript-2

我找到了一个在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 :(得分:0)

每次播放头传递一帧时,onEnterFrame函数都会触发。如果您的帧速率为30fps且播放头在此帧上停止,则表示onEnterFrame中的代码每秒执行30次。

如果您不需要/希望代码执行那么多,请将其从onEnterFrame中删除。

如果没有更多的背景,很难给出比这更具体的建议。

答案 1 :(得分:0)

嗯,我看到的第一个问题是你在每个'onPress'设置'onEnterFrame',但是当用户释放按钮时不要删除'onEnterFrame'。

我认为最好的方法是在用户移动(拖动)旋钮时设置鼠标移动处理程序,并在'onMouseMove'处理程序内执行所需操作,并在用户释放按钮后删除(禁用)'onMouseMove'处理程序。