进度条,但不是Preloader或FLV Seekbar

时间:2013-02-14 15:09:38

标签: actionscript-3 progress-bar seekbar

我正在尝试创建一个进度条来监控加载的影片剪辑的时间轴进度。大多数教程都基于预加载器。虽然我认为这个概念很相似,但我很挣扎。

用户通过单击左侧导航菜单加载各种影片剪辑。我希望进度条向用户显示它们在影片剪辑的时间轴中的位置。我还希望在加载新的影片剪辑时重新开始进度条。

我的进度条宽508像素。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

真的很简单。您只需将总宽度乘以您在影片剪辑中的百分比,就像这样:

var clip:MovieClip; //set this to the movie clip that has been loaded
clip.addEventListener( Event.ENTER_FRAME, this.enterFrameHandler );
var progressBar:Shape = new Shape();
var totalWidth:Number = 508;

function enterFrameHandler( e:Event ):void {
    this.progressBar.graphics.clear();
    this.progressBar.graphics.beginFill( 0x000000 );
    this.progressBar.graphics.drawRect( 0, 0, ( this.clip.currentFrame / this.clip.totalFrames ) * this.totalWidth, 10 );
    this.progressBar.graphics.endFill();
}

如果您指的是实际视频剪辑(在这种情况下使用影片剪辑可能会因为有一个MovieClip类而令人困惑),因为NetStream类没有进度事件或者总时间财产。您必须侦听要接收的MetaData,其中包含totalTime,您将保存为全局变量。然后你可以使用上面显示的相同方法(在容器对象上使用ENTER_FRAME,而不是电影对象),而是使用( NetStream.time / totalTime ) * totalWidth