代码之家  ›  专栏  ›  技术社区  ›  Daniel

Flash中的movieclip继承错误

  •  2
  • Daniel  · 技术社区  · 14 年前

    我有一个叫 Level 它继承了 MovieClip . 水平 在设计器中有一个名为的子级 gridView 以及 网格视图 用于 水平 建造师。
    我还有一个班级叫 Level1 它继承了 水平 . 当我尝试像 addChild(new Level1()) 我出错了 水平 建造师说 网格视图 为空。我做错什么了?

    代码的某些部分:

    public class Level extends MovieClip
    {
        public function Level()
        {
            var matrix:Matrix = new Matrix();
            matrix.translate(-250, -250);
            matrix.rotate(Math.PI / 6);
            matrix.scale(1, 0.5);
            matrix.translate(250, 250);
            gridView.transform.matrix = matrix; // error here referred from:
        }
    }
    
    public class Level1 extends Level
    {
        public function Level1()
        {
            super();
        }
    }
    
    addChild(new Level1()); // referred from here
    addChild(new Level()); // this worked fine
    
    3 回复  |  直到 14 年前
        1
  •  0
  •   owzim    14 年前

    样本代码你会很好的。在flash ide中,gridview真的有“gridview”的名称和实例名吗?

        2
  •  0
  •   Community CDub    7 年前

    如果没有代码或对某些设置的理解,我假设您的类如下所示:

    package {
        import flash.display.MovieClip;
    
        public class Level extends MovieClip {
            public var gridView:GridView;
    
            public function Level() {
                gridView.x = 100;
            }
        }
    }
    

    这是假设 gridView 是一个 GridView 但它可能是任何东西,真的。

    可能发生的是你没有 网格视图 在Flash IDE中正确命名的实例。您可能需要检查这个。

    另一种可能性是,你可能会陷入一种温和的芭蕾舞,即打开“严格模式”,同时关闭“自动声明阶段实例”。通过转到“发布设置”->Flash选项卡->单击脚本下拉列表右侧的“设置”按钮,可以找到这些复选框。

    这意味着在关闭自动声明的情况下,您需要在类中做更多的工作。

    有关在严格模式下可以和不能执行的操作的信息,请查看此堆栈溢出问题: Summary of ActionScript 3 strict mode

    在阶段实例中,有一点堆栈溢出问题: Flash AS3: ReferenceError: Error #1056: Cannot create property

        3
  •  0
  •   Trevor Boyle    14 年前

    我建议您在“级别”类中公开声明“gridview”。

    公共变量网格视图:movieclip;