0

我在 Flash 项目中有这个主要(文档类):

package  {
    import flash.display.MovieClip;
    import flash.events.Event;
    public class main extends MovieClip {

        public function main() {
            var other=new Other(this);
        }
    }   
}

这是其他类:

    package  {
        import flash.display.MovieClip;
        import Clippo;

        public class Other extends MovieClip {
            //
            public function Other(ref) {
                //
                var clippo = new Clippo();
                clippo.name="clippo";
                clippo.x=100;
                clippo.y=100;
                //1
                //ref.addChild(clippo);
                //2
                addChild(clippo);
            }
        }
}

现在:如果我将主类的引用 (ref) 传递给 Other 并添加 clippo,如您在第一种情况中看到的那样,我可以从主类引用影片剪辑 clippo(getChildAt(0)是主类的“clippo”)。但是,有没有办法使用第二种方法(无参考)并在主类中做同样的事情?当其他创建它时,我可以在舞台上看到 clippo,但我无法理解 clippo “生活”在 DisplayList 中的哪个位置。

4

2 回答 2

0

如果您遇到此类问题,您可能需要重新考虑您的架构。

制定一些您遵循的规则,以使您自己的事情更轻松,例如;不要让子元素将子元素添加到父元素中。

我认为获取对您的 clippo DisplayObject 的引用的最佳方法是为其提供一个 getter 方法。

public function get clippo():Clippo
{
    return this.clippo;
}
于 2011-08-21T21:33:59.240 回答
0

我不确定您要完成什么,但是:

  1. other如果要查看它或其子项,则需要添加到显示列表中。

    public function main()
    {
        var other:Other = new Other(this);
        addChild(other);
    }
    
  2. 您可以使用root而不是传递对文档类的引用。(一旦它出现在显示列表中)。

    root.addChild(clippo);
    

    但是,将它添加到其他更有意义:addChild(clippo)

  3. 在哪里创建 DisplayObjects 不会影响显示列表,只有调用addChild会。调用addChild文档类,并root.addChild在 Other 中产生相同的显示列表。

于 2011-08-21T21:43:18.277 回答