我正在尝试创建一个进度条来监视加载的影片剪辑的时间线进度。那里的大多数教程都是基于预加载器的。虽然我知道这个概念是相似的,但我很挣扎。
用户通过单击左侧导航菜单加载各种影片剪辑。我希望进度条向用户显示他们在影片剪辑时间轴中的位置。我还希望在加载新影片剪辑时重新开始进度条。
我的进度条是 508 像素宽。
有任何想法吗?
我正在尝试创建一个进度条来监视加载的影片剪辑的时间线进度。那里的大多数教程都是基于预加载器的。虽然我知道这个概念是相似的,但我很挣扎。
用户通过单击左侧导航菜单加载各种影片剪辑。我希望进度条向用户显示他们在影片剪辑时间轴中的位置。我还希望在加载新影片剪辑时重新开始进度条。
我的进度条是 508 像素宽。
有任何想法吗?
真的很简单。您只需将总宽度乘以您在影片剪辑中的百分比,如下所示:
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
改用。