加载库中的文件
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-11
Flash提供的linkage给我们的编程带来了极大的便利, 我们甚至可以主场景里面不放如何元素,所有的元素都放在库中,然后用action来组织调用.但是,在默认的方式下,Flash必须将linkage的所有元素都下载完毕以后,才开始执行第一帧的action,这样就造成loading的失效. 怎么解决这个难题呢? 有个办法可以很好的解决这个问题: 首先,对于库中所有的linkage,将 “在第一帧中导出”这个选项去掉 这样可以使linkage的元素不在第一帧前输出. 下面我们以加载库中的MP3为例,看看其中的妙处在哪 1。首先我们还是向往常那样 在第一帧和第2帧 做个简短的LOADING就行 第一帧: if (_root.getBytesLoaded()>=_root.getBytesTotal()) { gotoAndPlay(3); } else { a = Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100)+"% COMPLETED"; } 第2帧: gotoAndPlay(1); 2.接下来我们新建一个MC 把声音从库中拖动到第一帧,并且设置停止 如图 或者在这个MC的时间轴上的第一帧加stop() 第2帧放声音 (这下你可以不设置停止) 3。回到场景,在第3帧插入MC 在第4帧 写AS: mymusic = new Sound(); mymusic.attachSound("music"); mymusic.start(0, 1); stop(); 4 输出动画 测试LOADING 是不是很流畅的把库中的声音加载到场景中来了? 到这里为止,也许还有几个疑团在你脑子里。 疑团1 。为什么要去掉“在第一帧导入”? 疑团2。为什么做个MC来放入声音,而又不让其播放? 疑团3 。为什么这个MC要放在attachSound()的前面帧中呢? 答1:在默认的方式下,Flash必须将linkage的所有元素都下载完毕以后,才开始执行第一帧的action,这样就造成loading的失效.这样就取消了默认方式! 答2,3:我们取消了首帧导入 那怎么让flashplayer知道你这个元素在哪里呢?? 取消了首帧导入 flash就不知道这个所谓的linkage的元素在哪里了 而实际上它是在library里面,但对于flashplayer它是不知道的...flashplayer没有library这个概念。我们只需要把这个元素放到一个容器中(就是这个MC)意思是告诉flashplayer ,这样flashplayer就能找到这个元素了,我们只需要想个办法隐藏它 或者让他不出现。这就是我在MC第一帧加STOP 第2帧又拖入声音的原因了 这个容器(MC)STOP后的东西其实是我们不希望出现的,但我们是没办法才让它拖进来。因为flash要attach某样东西,首先要知道他的linkage,其次还要让这个物件在attach前被导出。 如果文件多了可以把他们都放在一帧里(特指那些要attach的) 方便管理,所以这个容器可以美其名曰:“垃圾收集器” 加载库中MP3的原程序: 点击浏览该文件 如果换个加载对象 改为JPG 呢? 方法差不多 不过是把JPG放在MC中 再在场景attachMovie 它即可 加载库中JPG的原程序: 点击浏览该文件 关键词: |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 游戏《贪食蛇》的制作下一篇: JS to Flash
关于加载库中的文件的所有评论