您现在的位置: 圆点视线 >> 教程 >> 媒体动画 >> Director >> 文章正文
对象列表的调用与删除         ★★★
对象列表的调用与删除
作者:佚名  文章来源:圆点视线  点击数:  更新时间:2005-12-27 18:41:00 
 页面功能:【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口 【字体:
在调用一个对象列表时,如果其中一个对象从列表中删除了它本身,那么调用将被中断,而且其后所有对象的调用信息都将被遗漏。在一个stepframe事件中,如果一个对象从actorList中删除了它本身,将会发生同样的问题。

  例如,有五个对象A、B、C、D和E,首先使用call(#HandlerName, ListOfObjects)调用它们,那么此后若对象“B”从列表中删除了它本身,则对象C、D和E都将无法收到调用命令。

  要避免这个问题,有两种方法:

  1. 调用原列表的一个副本,这样既能使对象删除自己,而且又保持了列表本身的完整性。通常情况下,这种方法是最简单有效的(尤其是在列表本身所涉及的对象比较简单时)。

  2. 创建一个临时列表,用以纪录那些需要删除的对象,当调用结束后,再根据此列表进行删除。下面便是一个简单的例子:

on mUpdateObjects
  garbageList = []
  call(#mUpdate, listOfObjects, garbageList)
  repeat with anObject in garbageList
    listOfObjects.deleteOne(anObject)
  end repeat
end

on mUpdate (me, garbageList)
  if removeMe() then garbageList.append(me)
  else ...update as normal
end



 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 文章录入:apoints    责任编辑:apoints  【字体:
 
  • 上一篇文章:

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