解决Flash的loading失效一例

  • 来源: 互联网 作者: 小希   2008-03-18/08:53
  • 最近在制作flash片头时发现一个问题,我的loading失效了?百思不得奇解,因为loading部分代码一直都用得好好的,而且每次都是复制过来改改帧数罢了。 


    我的loading部分代码很普通:在第35帧上的时间线上是: 
    total = _root.getBytesTotal(); 
    loaded = _root.getBytesLoaded(); 
    baifenshu = int((loaded/total)*100); 
    baifenbi = baifenshu+"%"; 
    jindutiao._xscale=baifenshu; 
          在36帧上的时间线上代码是: 
    if (baifenshu == 100) { 
        gotoAndPlay ("loadEnd");//loadEnd标签是在37帧上 
    } else { 
        gotoAndPlay ("loadStart");//loadStart标签是在35帧上 

          为了让浏览都等待时不要太枯燥,所以先等待过程中是有些音乐,有一个是设成"开始、循环"(第二帧开始的),另一个是设成"数据流、重复一次"(第九帧开始的),理论上是会在在loadin完之前会不断在35、36帧上循环检测。然而我出现的情况却是(在flash里的摸拟下载里观察到的)已经load超过35帧并到达几百帧(近50%)时当前帧并没有在35-36帧里循环,而是停在第九帧上不动了,大约已loading的百分比达到65%左右才向前播放并停在35与36帧间检测。这新让我的loadin大打节扣。

          经将35帧前的元件、时间帧上的动画、层一个个册除差的方法后来得知罪魁祸首就是第9帧里里设置成"数据流"的声音,将其改成"事件"问题就得已经解决,但为什么"数据流"的声音会影响到loading失灵呢?本人愚味,通过闪吧版主"猫大哥"的QQ精彩解说后终于明白是:如果是设成"数据流",swf就必须缓冲够设置的秒数或是说足够的帧序列.默认缓冲秒数为5.那么播放这个流声音就要缓冲5*30(30是我flash的帖频)个帧序列才能播放。(哪怕你的声单很小,只有0.0001K也是如此)


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多