作者forestluch (小强)
看板Flash
标题Re: [问题] 有关於loadMovie 读取缓冲的问题..
时间Mon Oct 1 02:21:05 2007
已经解决了
附上成品网址
http://student.ncyu.edu.tw/~s0941824/indexlogo.html
最後是 将档案全 loadMovie 进来 再 unloadMovie 掉
不过这时档案已全进了快取(暂存)
因此获得的浏览效果将和本机浏览一样
提供一下我写的ActionScript给各位参考
影格1
t=1;
//先定义一下,这个数值将用来指挥程式所该读取的档案名称
a=3;
//这个数值用来告知程式总共有多少档案须被读取
影格2
switch(_root.t){
case 1 :
loadMovie("1.swf",_root.box);
break;
//当t==1时 读取第一个档案
//预设的t=1,所以一开始系统便会读第一个档案
case 2 :
loadMovie("2.swf",_root.box);
break;
case 3 :
loadMovie("3.swf",_root.box);
break;
}
//使用目标来读取影片的好处是,可以继承元件的缩放及位置等等
//所以可以把元件变得很小,藏在某个角落,一来不占画面,二来节省系统绘图资源
//当然也要命令元件在读取时停止动作和声音
影格3
bl = _root.box.getBytesLoaded();
bt = _root.box.getBytesTotal();
//这部份开始定义读取的数值,加以计算就变成loadingBar的制作罗
影格4
if (bl == bt && t == a) {
//当目前档案读取完成且所有档案都独已读取
unloadMovie(_root.box);
//把档案卸载,而这些档案已进了快取(暂存)
play();
//离开这些回圈,可以播放罗
} else {
if (bl == bt) {
//当目前的档案读取完成
if (t<a) {
//还有其他档案尚未被读取
t += 1;
gotoAndPlay(2);
//变数+1,让程式在switch回圈中选择第二个档案读取
}
} else {
gotoAndPlay(3);
//这个部份是当前的档案尚未读取完毕,因此返回再继续读取
}
}
//完成
一个建议
当目前的档案尚未读取完全时
直接返回读取即可
不要重新返回switch回圈判断
理论上
判别结果还是会要你继续读同一个档案
这样又可以省一个影格作业........
但是
诡异的是一开始我比较懒都这样做
结果单机测试OK,上载後却发生读取停滞不前的bug,我也未能理解是为什麽
後来多设一个影格
将回圈判别,只有在当前的档案读取完成时再返回switch回圈
这样就OK了
虽然这个写法不一定是最好
但提供给各位罗~
※ 引述《forestluch (小强)》之铭言:
: 小弟最近作了一篇动画
: 在本机操作效果相当良好
: 但现在要放到网路上..........问题来了
: 一般为求动画完整性 都会在开头先暂停并做读取的动作
: 也就是读到100%再让使用整按下PLAY 这样画面便不会断断续续的..
: 那如果这个动画再拨放到一个部份时需要由外部汇入其他的档案时该怎麽办?
: 之前有做互动作品时 点选项目汇入外部档案资料 浏览完卸载 再汇入其他的..
: 但现在的作品是个动画 像跑马拉松一样 这个拨完汇入第二部 再换第三部..
: 用传统的写法 顶多只能让程式完整的读完第一个档案再播放
: 那拨到第二个 第三个档案 就开天窗了
: 最糟的是这个动画配合串流声音
: 不希望每拨完一个部份就要暂停读取(换片.冏)
: 目前唯一想到的就是在一开始将所有的档案全部 loadMovie 进来
: 然後所有的档案就进了本机快取(暂存)
: 然後开始播放再全部 umloadMovie 掉..
: 这样...? 行吗? 我觉得很奇怪 请问各位网友 有其他的办法可以给我参考吗
: 感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.171.106.38
1F:推 etrexetrex:看了一下发现你把影格当作function在用 XD 10/01 02:23
2F:推 forestluch:喔 这是以前留下来的习惯~"~a 10/01 02:32
3F:→ forestluch:时间轴的概念比程式的进行顺序要好理解多了 10/01 02:33
4F:→ forestluch:主要是目前写的程式没有很复杂 影格控制我觉得好管理XD 10/01 02:34
5F:推 cjcat2266:喔喔~华丽唷~应该花很多时间吧? 不过有点小lag就是了... 10/01 10:20
6F:推 forestluch:还好 两个晚上熬夜 原本想要做出类似宣传片的东西 10/01 11:06
7F:→ forestluch:但临时要做 资料不足 时间也不足 又加上配合音乐 10/01 11:07
8F:→ forestluch:所以把重点着墨在後面的互动网页展示 前面反而虚掉了 10/01 11:08
9F:→ forestluch:不过等到下次要办展览会啥的 再拿来修一修应该会很快 10/01 11:09