0

我有一个 AS2 swf,它将 FLV 视频加载到 FLVPlayback 组件中并附加了一个 seekBar 组件。当视频停止时,我从屏幕上卸载搜索栏并设置 FLVPlayback.seekBar = null。当要播放另一个视频时,我通过将 seekBar 组件附加到舞台并分配 FLVPlayback.seekBar = newSeekBarInstance 来再次设置搜索栏。

这是我的代码 -

(my_video = FLVPlayback 组件)

var theSeekBar = _root.attachMovie("SeekBar", "vidSeekBar", this.getNextHighestDepth());
_root.my_video.seekBar = theSeekBar;

当视频停止时 -

_root.my_video.seekBar = null;
_root.vidSeekBar.handle_mc.unloadMovie();
_root.vidSeekBar.unloadMovie();
_root.vidSeekBar.removeMovieClip();

我注意到的是,有时搜索栏会从屏幕上移除,有时却没有?我似乎在这里没有注意到任何模式。有没有人遇到过类似的问题?我需要强制垃圾收集吗?

4

1 回答 1

0

unloadMovie()仅适用于您已加载的剪辑loadMovie()。它不会对其他阶段实例产生任何影响。

因此,如果您在舞台上使用创建了您的实例attachMovie()removeMovieClip()并且将 seekBar 变量设置为 null 应该足以对其进行垃圾收集,除非您在其他地方有更多对它的引用(可能是一些事件侦听器?)。

不过我同意@duncmc:您应该考虑只隐藏搜索栏,而不是一遍又一遍地创建和删除它。

于 2011-02-07T16:10:20.007 回答