首页 > 网站 > 媒体动画 > 正文

Director综合技巧:Director 对象列表地调用与删除

2024-09-08 19:26:56
字体:
来源:转载
供稿:网友
director 对象列表的调用与删除
   原著:lingoworkshop
   翻译:alphachi

   在调用一个对象列表时,如果其中一个对象从列表中删除了它本身,那么调用将被中断,而且其后所有对象的调用信息都将被遗漏。在一个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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表