0

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

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

我的进度条是 508 像素宽。

有任何想法吗?

4

1 回答 1

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该类没有进度事件或总时间属性。您必须侦听要接收的元数据,其中包含总时间,您将其保存到全局变量中。然后您可以使用上面显示的相同方法(在容器对象上使用 ENTER_FRAME,而不是电影对象)并( NetStream.time / totalTime ) * totalWidth改用。

于 2013-02-14T16:24:33.137 回答