您现在的位置: 圆点视线 >> 教程 >> 媒体动画 >> Director >> 文章正文
Director-内存中对象的配置         ★★★
Director-内存中对象的配置
作者:佚名  文章来源:圆点视线  点击数:  更新时间:2005-12-27 18:32:25 
 页面功能:【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口 【字体:
如何来释放那些被大对象所占用的内存呢?最简单的方法是:切断所有与对象的联系,它就被清除了。切断联系的意思是将所有指向该对象的变量重置为void(包括在演员表中的任何联系),通过如下语句可以实现它:set gMyGroovyObject = value(void) ,或者你也可以用set gMyGroovyObject = 0来实现。两种方法都不需要额外的代码或者外部句柄,Director允许通过给对象的指针赋予0值,来将其从内存中清除掉。这两种方法都有效。而用void的好处就是,这样看上去更像是将其从内存中清楚,而不是给它赋一个0值。

  这两种方法都可以释放内存中的对象,也都能保留未被使用的变量。这个变量是0还是void都没差别,他们都会占用最少的内存来存储一个值。

  lingo中变量占用内存的大小取决于这个变量存储内容的需要。从占用内存的角度来讲,变量被分为两种:简单变量和复杂变量,简单变量存储整数,符号,和指针。他们的大小是固定的,都是8字节。而复杂变量则用一个指针来指向内存中的另外一部分内容,那里存放着实际的内容。这样的复杂变量存储字符串,表,还有对象。当切断与”内存中的另外一部分内容“相关联的所有指针和联系,这部分被占用的内存就会被释放。例如,如果我们定义一个叫myobjectptr的变量来存储一个新的对象,他就存储了一个指向新对象的指针:myobjectptr占用的空间=指针本身占用的8字节+新对象所占用的内存空间。

  如果myobjectptr只是一个指向这个特定对象的一个指针,我们可以简单地用set myobjictptr=0 或者 VOIDl来释放这个对象所占用的内存空间,但是myobjectptr却还占用着一个简单变量所应该占用的空间。但是其余部分已经被释放了,在这个变量离开作用域而被彻底销毁时,它才真正地全部释放它所占用的内存。

  不同的lingo变量作用域有:

  1、本地作用域:一个句柄中创建的变量拥有本地作用域。当句柄结束时,它也就被销毁了,它的本地作用域就结束了。如果myobjectptr是一个本地作用域的变量,那么当它所在句柄未结束之前,它始终占用一个最小的内存空间。

  2、对象作用域:这是一种属性变量,他存在于一个对象中,或者对象中被其他关联变量所指向的表当中。属性变量将一直存在,直到包含它的那个对象再没有任何变量与之关联。如果 myobjectptr是一个对象中的属性变量,并且myobjectptr已经被清空,那么,他将一直占用一个最小的内存空间,直到包含他的那个对象销毁,也就是与对象相关联的其他变量全部切断。

  3、全局作用域:很明显,全局变量拥有全局作用域。他们将在电影或者projector退出之前一直存在。你可以使用clearglobals命令来清空所有全局变量,但这只能使全局变量的指向为空,除非他根本就没指向什么。尽管已经被清空,但是他还是将占用简单变量所需要占用的内存空间。如果myobjectptr是一个全局变量,并且被清空了。那么他将始终占用一部分空间,直到电影或者projector退出。

  总之,简单变量类型占用的内存最少。在没有脱离他们的作用域之前,你无法真正的清楚他们。而复杂变量也占用同样的内存空间,不过,他还要占用额外的空间来容纳复杂数据自己。对于那些复杂变量或者没有任何其他变量指向的复杂数据本身,你可以通过简单地将复杂变量清0或者使之为空,来释放那些额外占用的内存。 
 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 文章录入:apoints    责任编辑:apoints  【字体:
 
  • 上一篇文章:

  •  
  • 下一篇文章:
  • 最新文章
    相关文章
    Director怎样制作自定义光标
    用Director控制动画GIF
    director应用技巧
    flash和director之间的沟通技巧
    Director中控制声音音量的几种方法
    Director8行为库的应用
    用Director创建涂色板
    认识Director中的Xtra
    如何检测演员的载入进度
    对象列表的调用与删除
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
     姓  名: 评 分: 1分 2分 3分 4分 5分
     评论内容: ·严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
    ·用户需对自己在使用本网服务过程中的行为承担法律责任
    ·本站管理员有权保留或删除评论内容。
    ·评论内容只代表机友个人观点,与本网站立场无关。
     
    最 新 推 荐
     
    百度主题推广
    最 新 热 门