【问题标题】:Cleanup MovieClips on Scene Change in ActionScript 2在 ActionScript 2 中的场景更改上清理 MovieClip
【发布时间】:2011-05-13 09:51:44
【问题描述】:
    for(i=0;i<itemLength;i++)
    {
        duplicateMovieClip("tvmenuitem", "tvmenuitem"+i, i);

...

但是当我使用 gotoAndPlay('main',1); 改变场景时

主场景覆盖了我在前一个场景中拥有的所有电影剪辑。

如何自动清理它们?

【问题讨论】:

    标签: flash actionscript actionscript-2


    【解决方案1】:

    在生成剪辑时存储对创建剪辑的引用:

    // store your clip references here
    var clips:Array = [];
    
    for(i=0;i<itemLength;i++)
    {
        // create you duplicated clip and store a reference in your clips array
        var dupe:MovieClip = duplicateMovieClip("tvmenuitem", "tvmenuitem"+i, i);
        clips.push(dupe);
    }
    

    然后在必要时使用removeMovieClip方法销毁剪辑:

    // loop through the clips array and destroy the clips in your array
    for(i=0, l=clips.length; i<l; i++)
    {
        clips[i].removeMovieClip();
    }
    
    // reset the array
    clips = [];
    

    【讨论】:

    • 是否有现场变化事件?
    • 不确定,好久没用场景了。您总是可以在场景的第一帧中放置一些 AS 来清理旧的剪辑参考。您可能必须将 clips 变量粘贴在全局范围 '_root.clips = []` 或类似的东西中。有点丑,但时间轴上的编码不应该是漂亮的:)
    • 那么我应该如何编码呢?我是闪光灯新手。你用什么代替场景?
    • 这一切都取决于你在做什么。场景适用于具有最少脚本控制的基于故事的动画。典型的以开发人员为中心的工作流程是将文档类分配给项目并使用代码指导事物,使用库来存储没有 IDE 的绘图/动画工具就无法生成的资产和动画。没有唯一正确的方法来处理事情,但是请考虑在构建项目时计划如何维护项目,这样一个月后您就不会在关键帧上搜索代码 sn-p 了某处 :) 干杯。
    猜你喜欢
    • 2013-07-16
    • 2013-05-14
    • 1970-01-01
    • 2019-03-19
    • 2014-04-29
    • 2020-04-01
    • 2013-05-14
    • 2012-04-12
    • 1970-01-01
    相关资源
    最近更新 更多