Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
flash中的MovieClip继承错误_Flash_Actionscript 3 - Fatal编程技术网

flash中的MovieClip继承错误

flash中的MovieClip继承错误,flash,actionscript-3,Flash,Actionscript 3,我有一个名为Level的类,它继承了MovieClipLevel在设计器中有一个子项,其名称为gridView,并且gridView用于Level构造函数中。 我还有一个名为Level1的类,它继承了Level。当我尝试类似于addChild(new Level1())的方法时,我在Level构造函数中得到一个错误,即gridView为空。我做错了什么 代码的某些部分: public class Level extends MovieClip { public function Leve

我有一个名为
Level
的类,它继承了
MovieClip
Level
在设计器中有一个子项,其名称为
gridView
,并且
gridView
用于
Level
构造函数中。
我还有一个名为
Level1
的类,它继承了
Level
。当我尝试类似于
addChild(new Level1())
的方法时,我在
Level
构造函数中得到一个错误,即
gridView
为空。我做错了什么

代码的某些部分:

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

示例代码你会很好。gridView在flash IDE中是否真的有“gridView”的名称和实例名?

示例代码您会很好。gridView在flash IDE中是否真的有“gridView”的名称和实例名?

如果没有代码或了解您的一些设置,我假设您的类是这样的:

package {
    import flash.display.MovieClip;

    public class Level extends MovieClip {
        public var gridView:GridView;

        public function Level() {
            gridView.x = 100;
        }
    }
}
这是假设
gridView
是一个
gridView
,但实际上它可以是任何东西

可能发生的情况是,您的
gridView
实例在flashide中没有正确命名。你可能想检查一下这个

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

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

有关在严格模式下可以做什么和不能做什么的一些信息,请查看以下堆栈溢出问题:


关于stage实例,有一个堆栈溢出问题:

如果没有代码或了解一些设置,我假设您的类是这样的:

package {
    import flash.display.MovieClip;

    public class Level extends MovieClip {
        public var gridView:GridView;

        public function Level() {
            gridView.x = 100;
        }
    }
}
这是假设
gridView
是一个
gridView
,但实际上它可以是任何东西

可能发生的情况是,您的
gridView
实例在flashide中没有正确命名。你可能想检查一下这个

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

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

有关在严格模式下可以做什么和不能做什么的一些信息,请查看以下堆栈溢出问题:


关于stage实例,有一个堆栈溢出问题:

我建议您在“Level”类中公开声明“gridView”


公共视图:MovieClip

我建议您在“Level”类中公开声明“gridView”


公共视图:MovieClip

我已经发布了我的代码,它不像你一开始写的那样。当我尝试
newlevel()
时,它工作得很好,但是当我尝试
newlevel1()
时,它就死了,尽管
Level
声明几乎是空的。现在有了源代码,让我再看一看。我已经发布了我的代码,它不像你一开始写的那样。当我尝试
newlevel()
时,它工作得很好,但是当我尝试
newlevel1()
时,它就死了,尽管
Level
声明几乎是空的。既然有了源代码,让我再看一看。Level1是否附加到创作中包含名为gridView的对象的MC?如果不是,那就是问题所在——类继承只发生在代码中;级别的子类不会有自己的gridView实例,因为父类在创作中声明了一个实例。级别1是否附加到创作中包含名为gridView的对象的MC?如果不是,那就是问题所在——类继承只发生在代码中;级别的子类不会有自己的gridView实例,因为父类在编写时声明了一个实例。