2011-02-07 78 views
0

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

这里是我的代码 -

(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(); 

什么IM注意到的是,有时候搜索栏从取出屏幕,有时它不是?我似乎无法注意到这里的任何模式。有没有人有类似的问题?我需要强制垃圾回收吗?

+1

不知道这是否是答案,但我会倾向于隐藏搜索栏而不是删除它 - 揭示。 – duncmc 2011-02-07 15:09:36

回答

0

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

所以,如果你已经创建使用attachMovie()removeMovieClip()并设置搜索条变量设置为null阶段的情况下,应该足以把它作为垃圾回收,除非你有任何更多的引用(也许还有一些事件监听器?)的地方其他。

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