flash8 加载swf文件后怎么卸载
我在做flash时加载了以个swf的外部文件loadMovieNum("caocaokeaidejianxiong.swf",1);。这个swf文件时把一段flv格式转换...
我在做flash时加载了以个swf的外部文件loadMovieNum("caocaokeaidejianxiong.swf", 1);
。这个swf文件时把一段flv格式转换成的,当我在调用它是,它却一直循环播放,不知道怎么卸载回到原来的舞台上。我知道卸载的代码是unload,请问怎么办,我用的是flash8 展开
。这个swf文件时把一段flv格式转换成的,当我在调用它是,它却一直循环播放,不知道怎么卸载回到原来的舞台上。我知道卸载的代码是unload,请问怎么办,我用的是flash8 展开
3个回答
展开全部
要彻底地移除一个外部swf,就是要想办法彻底清除掉所有对于它的引用并停止它的播放。
首先要移除掉外部swf的所有事件侦听。由内部添加的事件侦听,就在内部移除;而这个外部swf本身的事件侦听,应该由外部swf提供一个移除自身事件侦听的公开方法,从内部调用这个方法就行了。否则它的引用将会保存在 event.target 里面。
其次要销毁所有对这个swf的全局引用(非全局引用可以不管):比如用了某个全局变量来记录这个swf,记住要把这个变量设为 null;如果你用某个全局数组保存了这个swf,也记得把它清除出数组。如果把swf保存在某个全局对象的属性里面,如 private var obj:Object = new Object; obj.swf = swf,也要把obj.swf 设为null。
还有要清除掉所有对该swf内部的影片剪辑的全局引用。比如创建了一个全局变量记录了swf下的mc : private var _mc1 = swf.mc1 的话,_mc1.parent 就是对swf的引用。同理, private var _mc2 = swf.mc1.mc2 的话,_mc2.parent.parent也是对swf的引用。_mc1和_mc2要设为null。
最后要让内部用于加载swf的Loader对象执行 unloadAndStop() 让这个swf文件停止并卸载。
首先要移除掉外部swf的所有事件侦听。由内部添加的事件侦听,就在内部移除;而这个外部swf本身的事件侦听,应该由外部swf提供一个移除自身事件侦听的公开方法,从内部调用这个方法就行了。否则它的引用将会保存在 event.target 里面。
其次要销毁所有对这个swf的全局引用(非全局引用可以不管):比如用了某个全局变量来记录这个swf,记住要把这个变量设为 null;如果你用某个全局数组保存了这个swf,也记得把它清除出数组。如果把swf保存在某个全局对象的属性里面,如 private var obj:Object = new Object; obj.swf = swf,也要把obj.swf 设为null。
还有要清除掉所有对该swf内部的影片剪辑的全局引用。比如创建了一个全局变量记录了swf下的mc : private var _mc1 = swf.mc1 的话,_mc1.parent 就是对swf的引用。同理, private var _mc2 = swf.mc1.mc2 的话,_mc2.parent.parent也是对swf的引用。_mc1和_mc2要设为null。
最后要让内部用于加载swf的Loader对象执行 unloadAndStop() 让这个swf文件停止并卸载。
展开全部
使用loadMovieNum()方法加载的只能用unloadMovieNum()进行卸载,因为是加载到层级_level1上了。强烈建议你用MovieclipLoader来加载外部SWF文件。
以下是我做的演示-----
var targetswf:MovieClip = this.createEmptyMovieClip ("targetswf", 0);
var swfloader:MovieClipLoader = new MovieClipLoader ();
var loadlistener:Object = new Object ();
loadlistener.onLoadComplete = function ()
{
trace ("Success.");
};
loadlistener.onLoadError = function ()
{
trace ("Failed.");
};
swfloader.addListener (loadlistener);
swfloader.loadClip ("caocaokeaidejianxiong.swf", targetswf);
/*
先创建影片剪辑和MovieclipLoader对象,loadClip方法的参数是 (目标路径(字符串),加载到的影片剪辑(影片剪辑))。
*/
附录-----
unloadMovieNum 函数
unloadMovieNum(level:Number) : Void
从 Flash Player 中删除通过 loadMovieNum() 加载的 SWF 或图像。若要卸载通过 MovieClip.loadMovie() 加载的 SWF 或图像,应使用 unloadMovie() 而不是 unloadMovieNum()。
可用性:Flash Player 3;ActionScript 1.0
参数
level:Number - 加载的影片的级别 (_level N)。
示例
下面的示例将一个图像加载到 SWF 文件中。当单击 unload_btn 时,将删除已加载的内容。
loadMovieNum("yourimage.jpg", 1);
unload_btn.onRelease = function() {
unloadMovieNum(1);
}
希望能对你有帮助。如果有不懂的地方,欢迎提问。
以下是我做的演示-----
var targetswf:MovieClip = this.createEmptyMovieClip ("targetswf", 0);
var swfloader:MovieClipLoader = new MovieClipLoader ();
var loadlistener:Object = new Object ();
loadlistener.onLoadComplete = function ()
{
trace ("Success.");
};
loadlistener.onLoadError = function ()
{
trace ("Failed.");
};
swfloader.addListener (loadlistener);
swfloader.loadClip ("caocaokeaidejianxiong.swf", targetswf);
/*
先创建影片剪辑和MovieclipLoader对象,loadClip方法的参数是 (目标路径(字符串),加载到的影片剪辑(影片剪辑))。
*/
附录-----
unloadMovieNum 函数
unloadMovieNum(level:Number) : Void
从 Flash Player 中删除通过 loadMovieNum() 加载的 SWF 或图像。若要卸载通过 MovieClip.loadMovie() 加载的 SWF 或图像,应使用 unloadMovie() 而不是 unloadMovieNum()。
可用性:Flash Player 3;ActionScript 1.0
参数
level:Number - 加载的影片的级别 (_level N)。
示例
下面的示例将一个图像加载到 SWF 文件中。当单击 unload_btn 时,将删除已加载的内容。
loadMovieNum("yourimage.jpg", 1);
unload_btn.onRelease = function() {
unloadMovieNum(1);
}
希望能对你有帮助。如果有不懂的地方,欢迎提问。
参考资料: Flash 8 帮助文档:unloadMovieNum 方法
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
以下是演示-----
var targetswf:MovieClip = this.createEmptyMovieClip ("targetswf", 0);
var swfloader:MovieClipLoader = new MovieClipLoader ();
var loadlistener:Object = new Object ();
loadlistener.onLoadComplete = function ()
{
trace ("Success.");
};
loadlistener.onLoadError = function ()
{
trace ("Failed.");
};
swfloader.addListener (loadlistener);
swfloader.loadClip ("caocaokeaidejianxiong.swf", targetswf);
/*
先创建影片剪辑和MovieclipLoader对象,loadClip方法的参数是 (目标路径(字符串),加载到的影片剪辑(影片剪辑))。
var targetswf:MovieClip = this.createEmptyMovieClip ("targetswf", 0);
var swfloader:MovieClipLoader = new MovieClipLoader ();
var loadlistener:Object = new Object ();
loadlistener.onLoadComplete = function ()
{
trace ("Success.");
};
loadlistener.onLoadError = function ()
{
trace ("Failed.");
};
swfloader.addListener (loadlistener);
swfloader.loadClip ("caocaokeaidejianxiong.swf", targetswf);
/*
先创建影片剪辑和MovieclipLoader对象,loadClip方法的参数是 (目标路径(字符串),加载到的影片剪辑(影片剪辑))。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |