【问题标题】:Flash ActionScript 2 Slider IssueFlash ActionScript 2 滑块问题
【发布时间】:2011-11-01 14:47:27
【问题描述】:

我找到了一个在 AS2 中制作滑块的脚本。问题是脚本不断检查我在哪个框架上,我需要它不要这样做。我认为我需要的是一种检查一次并设置帧号的方法,然后如果我在此期间滑动滑块开始检查,并且完成滑动滑块以再次停止检查。此滑块将用于通过 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();

【问题讨论】:

    标签: flash slider actionscript-2


    【解决方案1】:

    onEnterFrame 函数将在播放头每经过一帧时触发。如果您的帧速率为 30fps 并且播放头停止在这一帧上,这意味着 onEnterFrame 中的代码每秒执行 30 次。

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

    如果没有更多的上下文,很难给你比这更具体的建议。

    【讨论】:

    • 所以我应该删除 onEnterFrame 并为该函数命名?我会试试看。
    • hmm,移除 onEnterFrame 会破坏滑块......这意味着如果我移除 onEnterFrame,发布我的 swf,脚本不再知道中间框架在哪里,滑动滑块不会做任何事情.我想要完成的是一个从 frame1 移动到 80 或一些帧范围的滑块。我将影片剪辑“轨道”绑定到剪辑中的总帧数。我还将影片剪辑“旋钮”绑定到“轨道”,因此左右滑动可以在时间轴上上下移动。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-10-24
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多