百科知识

flashMovieClipLoader难题eateEmptyM

2009-01-04 10:27:201***
eateEmptyMovieClip("movie_mc1",1); var movi = new Object(); var = new MovieClipLoader(); dListener(movieListener); mcloader.loadClip("dog.swf",movie_mc1); //movieListener.onLoadComplete=function(){} btn.onRelease = function() { _ vie_ moveMovieClip(); _ loader.unloadClip(); _ eateEmptyMovieClip("movie_mc1",1); _ loader.loadClip("dog_bone.swf",_ vie_mc1); <!-- _ vieListener.onLoadStart=function(){} _ vieListener.onLoadComplete=function(){} _ vieListener.onLoadInit=function(){} --> HideIconNum(); }; 我想一点击按钮后,就能切换swf播放。现在的问题,当第一次点击按钮时,dog_bone.swf播完后停止了。第二次点击按钮时在原来停止的画面后面,又出现了dog_bone.swf在播放。没有替换掉原来的swf,而是又新出现了一个swf重新播放。 我搜到的一些参考资料: 经过测试,调用loadClip方法之后,立即调用unloadClip方法是丝毫不起作用的,下载过程会继续进行,并且MovieClipLoader类的事件处理函数仍然会被调用。这看起来非常出乎人的意料之外!而且非常不合理,但是事实就是如此。另外,假如手动将被加载对象的目的剪辑删除(unloadMovie或者removeMovieClip),这将删除舞台上的剪辑,但是仍然不能释放MovieClipLoader所占用的资源。 事实证实,当MovieClipLoader.onLoadComplete被调用之后,再次使用unloadClip方法,将会删除被加载的剪辑,但是同时网络连接的占用也会被释放。但是这样做的并没有太大的意义,因为图片一旦开始下载,资源消耗是不可消除的,但这恰又是要害的资源。这段无意义的资源占用会字节导致用户计算机的网络阻塞,表现为上网速度忽然降低,几秒钟之后恢复正常(这要看用户的网络速度如何以及同时下载的图片数有多大)。 重用网络连接的唯一方法:永远不要在onLoadCompelete完成之前删除一个被加载的swf; 这个onLoadCompelete要加在哪里,怎么加?flashMovieClipLoader难题eateEmptyMovieClip("movie_mc1",1);varmovi=newObject();var=?

最佳回答

  • 用AS3.0吧 ---------------------------------- import flash.display.*; import .URLRequest; import flash.events.Event; var = new Sprite(); addChild(container); var = new Loader(); var = " g" var p = new URLRequest(pictURL); pictLdr.load(pictURLReq); dEventListener(Event.COMPLETE, imgLoaded); function imgLoaded( ):void { dChild( ntent); } 新年快乐
    2009-01-18 23:36:28
  • 用AS3.0吧 ---------------------------------- import flash.display.*; import .URLRequest; import flash.events.Event; var = new Sprite(); addChild(container); var = new Loader(); var = " g" var p = new URLRequest(pictURL); pictLdr.load(pictURLReq); dEventListener(Event.COMPLETE, imgLoaded); function imgLoaded( ):void { dChild( ntent); }
    2009-01-05 11:11:44
  • 很赞哦! (71)