【问题标题】:Access MovieClip instances that are already on the stage in Document Class?访问 Document Class 中已经在舞台上的 MovieClip 实例?
【发布时间】:2012-01-20 22:34:03
【问题描述】:

我在 Flash 中创建了一个游戏,由于游戏的性质,我在 Flash CS4 中手动放置了许多电影剪辑。它们不是以编程方式作为子级添加到舞台的,因此我很难在文档类中访问它们。到目前为止,我能够使用的唯一方法是做stage.addChild(active_area);(例如),但是有很多电影剪辑,所有的命名都非常不同,所以这种方法似乎不正确。

我发现我的MovieClips 不是舞台的孩子,但实际上MainTimeline,当我for 循环通过stage.getChildAt(i); 时,只有一个孩子root1 被追踪。

如何从文档类访问放置在时间轴中舞台上的影片剪辑,而无需手动将它们作为子级添加到舞台?

[编辑]


所以看起来我的问题不是我无法访问 MovieClip,而是我没有修改 MovieClip 的值,所以我没有在其中注册任何更改。

这是我修复后的代码:

    function manage_cursor(e:Event):void {
        prevX=currX;
        prevY=currY;
        currX=stage.mouseX;
        currY=stage.mouseY;
        var i:int;

        if (currY > (stage.stageHeight/2)) {

            for (i = 0; i < this.numChildren; i++) {
                if (this.getChildAt(i).name!="active_area" && stage_kelp.y > kelp.min_y_mod) {
                    this.getChildAt(i).y-=1;                    
                }
            }
        }
        if (currY < (stage.stageHeight/2)) {
            for (i = 0; i < this.numChildren; i++) {
                if (this.getChildAt(i).name!="active_area" && this.stage_kelp.y < kelp.max_y_mod) {
                    this.getChildAt(i).y+=1;
                }
            }
        }

    }

之前的问题是我正在检查stage.numChildren;,使用stage.getChildAt(i),并修改那个孩子,也就是时间线。这给了我舞台上所有其他 MovieClip 被移动的效果,所以我假设它们的 y 值正在改变,但它们没有,因此,我的条件都没有触发,给我一种错觉我无法访问 MovieClips。按照下面答案中的包的建议,将stage 更改为this,为我解决了这个问题。

【问题讨论】:

    标签: flash actionscript-3 flash-cs4 movieclip


    【解决方案1】:

    在您的Document Class 中尝试此代码:

    trace(this["movieclip_name"]);
    

    this 指的是您的Document Class 中的MainTimeline

    【讨论】:

      【解决方案2】:

      您是否尝试过为 ActionScript 导出 MovieClip 并为其指定标识符?之后,您通常可以只使用标识符来访问 MovieClip。

      【讨论】:

      • 我给了 package 答案,因为他的答案解决了我的问题,但是一旦我开始循环通过 this.numChildren(i) 而不是 stage.numChildren(i);,你的答案也有效,所以我支持你。
      • 别担心!不胜感激,祝你好运,对不起,我之前忘了给你的问题投票。
      猜你喜欢
      • 2012-02-02
      • 1970-01-01
      • 2013-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      相关资源
      最近更新 更多