Flash Actionscript时间线清理器/转换为AS3

Flash Actionscript时间线清理器/转换为AS3,flash,actionscript-3,actionscript,Flash,Actionscript 3,Actionscript,我有一个滑动条(和按钮)的代码,它可以滚动/控制电影剪辑的时间线,但我不知道如何将它转换为ActionScript3。 任何帮助都将不胜感激。或者,是否有人知道此功能的as3示例 代码如下: controller = this; startR = timeline._x; endR = startR + timeline._width; Range = endR-startR; playSpeed = 0; slider.onPress = function(){ var offset =

我有一个滑动条(和按钮)的代码,它可以滚动/控制电影剪辑的时间线,但我不知道如何将它转换为ActionScript3。 任何帮助都将不胜感激。或者,是否有人知道此功能的as3示例

代码如下:

controller = this;

startR = timeline._x;
endR = startR + timeline._width;
Range = endR-startR;

playSpeed = 0;

slider.onPress = function(){
var offset = this._x - this._parent._xmouse;
this.onMouseMove = function(){
    this._x = Math.min(Math.max(startR, this._parent._xmouse + offset), endR);
    var percent = (this._x-startR)/Range;
    target.gotoAndStop(Math.floor(percent*target._totalframes)+1)
    updateAfterEvent();
}
this.onMouseMove();
}
slider.onRelease = slider.onReleaseOutside = function(){
delete this.onMouseMove;
if (playSpeed == 1) target.play()
}
this.onEnterFrame = function(){
if (!slider.onMouseMove){
    if (playSpeed != 1) target.gotoAndPLay(Math.round(target._currentframe+playSpeed));
    // playSpeed of 1 is handled with play() so that synced audio can play
    if (target._currentframe == target._totalframes) playSpeed = 0;
    var percent = (target._currentframe-1)/(target._totalframes-1);
    slider._x = startR + Range*percent;
}
}

// Buttons
start_btn.onRelease = function(){
playSpeed = 0;
target.gotoAndStop(1);
}
rw_btn.onPress = function(){
this.orig = playSpeed;
playSpeed = -2;
}
rw_btn.onRelease = rw_btn.onReleaseOutside = function(){
playSpeed = this.orig;
if (playSpeed == 1) target.play();
}
stop_btn.onRelease = function(){
playSpeed = -1;
}
play_btn.onRelease = function(){
playSpeed = 1;
target.play();
}
ff_btn.onPress = function(){
this.orig = playSpeed;
playSpeed = 2;
}
ff_btn.onRelease = rw_btn.onReleaseOutside = function(){
playSpeed = this.orig;
if (playSpeed == 1) target.play();
}
end_btn.onRelease = function(){
playSpeed = 0;
target.gotoAndStop(target._totalframes);
}
如果有人在业余时间做这件事太复杂了, 也许有人对在as3中为我创建此功能感兴趣,当然是付费的

提前感谢,,
符号学

这里有一个使用滑块的示例

var mySlider:Slider;// slider on timeline

mySlider.liveDragging=true;
mySlider.addEventListener(Event.CHANGE, handlerScrollEvent);

function handlerSliderChange(event:ScrollEvent):void{
    var value:Number = (event.target as Slider).value;

    // TODO convert value from 0-10 to number of frames based on percentage
}

这也有点乱,但我想你无论如何都不需要它的一切

MovieClip具有实例名称clip

滑块(位于“组件”菜单中)具有实例名称滑块和属性 最大值为100

这6个按钮的实例名为playBtn、stopBtn、reverseebtn、fasterBtn、slowerBtn 他们按照名字的意思做

将其用作框架脚本:

import fl.events.*;
import fl.controls.*;

clip.stop();

//slider
var slider:Slider;
slider.liveDragging=true;
slider.addEventListener(SliderEvent.CHANGE, sliderListener);
slider.addEventListener(SliderEvent.THUMB_PRESS, stopListener);
slider.addEventListener(SliderEvent.THUMB_RELEASE, playListener);

//update thumb
clip.addEventListener(Event.ENTER_FRAME, enterFrameListener);

//buttons
playBtn.addEventListener(MouseEvent.CLICK,playListener);
stopBtn.addEventListener(MouseEvent.CLICK,stopListener);
reverseBtn.addEventListener(MouseEvent.CLICK,reverseListener);
fasterBtn.addEventListener(MouseEvent.CLICK,faster);
slowerBtn.addEventListener(MouseEvent.CLICK,slower);

var speed:int=1;
var lastSpeed:int=1;

//when slider value changes
function sliderListener(event:SliderEvent):void{
  var frame:Number = Math.round(clip.totalFrames*event.value/100);
    clip.gotoAndStop(frame);
}

function playListener(event:Event){speed=lastSpeed} //playBtn or release Thumb
function stopListener(event:Event){lastSpeed=speed;speed=0}//stopBtn or press Thumb
function reverseListener(event:Event){speed*=-1}//reverseBtn
function faster(event:Event){speed++}//fasterBtn
function slower(event:Event){speed--}//slowerBtn

function enterFrameListener(event:Event){
    if(speed!=0){
        if(clip.currentFrame+speed<1){
            clip.gotoAndStop(clip.totalFrames+speed+1);
        }else if(clip.currentFrame+speed>clip.totalFrames){
            clip.gotoAndStop(0+speed);
        }else{
            clip.gotoAndStop(clip.currentFrame+speed);
        }
    slider.value=Math.round(clip.currentFrame/clip.totalFrames*100);
    }
}

请参见此处的.swf:

您最好从头开始创建一个,而不是试图转换这个混乱
ffBtn.addEventListener(MouseEvent.MOUSE_DOWN,ffStartListener);
ffBtn.addEventListener(MouseEvent.MOUSE_UP,ffEndListener);
ffBtn.addEventListener(MouseEvent.MOUSE_OUT,ffEndListener);

var ff:Boolean=false;

function ffStartListener(event:Event){ff=true;speed*=2};
function ffEndListener(event:Event){
    if(ff){
        speed/=2;
        ff=false;
    }
}