主题:  为什么我的程序越运行越慢?

wws2000

职务:普通成员
等级:1
金币:1.0
发贴:126
#12001/10/18 10:16:54
程序所要做的主要事情是不断的调用声音文件和相应的文字,并让它们同步显示,有点类似于"开天辟地"等解说型教学软件,但总体上做法有所不同,我这个程序本身没有很多变化,只是背景和对话的人物有变化,所以基本上就用了几帧(不足10帧),当然可以只用1帧来实现,不过得要多写几句lingo代码。
  设计的基本思路是:
  1、以自然段为准,每个段对应一个声音文件,格式是用压缩的swa,大小每个在50多K左右,大的也不超过100K。采用是外部调用,命令用得是:SOUNDFILE 1
THEMOVIEPATH&“题数\题数-段数.SWA“,也就是在projector同路径下建98个文件夹,每个文件夹里根据段落的不同有若干个声音文件,如1-1.swa,1-3.swa等等。
  2、文字我曾因为慢的原因,尝试了不同的调用方法,最开始是把文字也同相应的声音文件放在同一个文件夹内,只是文字用一个txt文本,用得时候先调入一个text member中,然后再一段一段调用。命令用得是:getnexttext themoviepath&"题数\题数.txt",后来又改用fileio来调用,最后索性把文字也装入 内部演员表中,但发现仍没解决慢的问题。这不是症结所在。
  3、大体编程思路是:
    第1帧调用文字。
    第2帧至第7帧是一个基于score的文字动画,即让文字从底部上升到屏幕中央。
    第8帧调用声音文件。
    第9帧等待声音,播放完后,离开当前帧,即进入第10帧。
    第10帧主要是判断和计数,段落数加1,如果当前题已播放完,则题数加1,然后返回第1帧,继续进行,依次循环。题数和段落数用全局变量。
  4、全程有一背景音乐在循环播放。

  问题表现如题,在播放了5个题后,感觉比较明显,主要是文字老是不出,调用时背景音乐还出现断续现象。

  我考虑应该是内存的问题,因为在编辑环境中,每当慢的时候我“purge“一下就好了,在运行中没法“purge“。程序中我要不断改写一个text member的text属性,这个text member就是显示在屏幕上的文字,所以要不断的换。那么慢的原因只有两个,一个是文字的原因,一个是声音的原因,我实在搞不清了,所以劳请各位帮助分析一下。



koala_5d

职务:普通成员
等级:2
金币:1.0
发贴:189
#22001/10/18 14:17:43
你的文字是用的多少号字体?
如果大于14的话 (DIR系统默认给你)Anti-Alias more than 14 point
这样如果你的文字很多的话,会导致运算的速度很慢。
解决的方法是:去掉这个选项 改成 None
试试吧,可能是这个原因!



wws2000

职务:普通成员
等级:1
金币:1.0
发贴:126
#32001/10/18 15:09:44
很有道理,我试试看



wws2000

职务:普通成员
等级:1
金币:1.0
发贴:126
#42001/10/20 9:23:53
这样还是不行。
已经解决了,看下帖
www.aougu.com/bbs/wdbread.php?forumid=1&filename=f_514

编辑历史:[这消息被wws2000编辑过(编辑时间2001-10-21 16:45:08)]