Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.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 TypeError:错误#1009:无法访问空对象引用的属性或方法-_Flash_Actionscript 3 - Fatal编程技术网

Flash TypeError:错误#1009:无法访问空对象引用的属性或方法-

Flash TypeError:错误#1009:无法访问空对象引用的属性或方法-,flash,actionscript-3,Flash,Actionscript 3,我只需要创建一个电影剪辑,把它放在舞台上,并给它一个实例名char 文档类 public class Test extends MovieClip { public function Test() { char.x = 1315; char.y = 459; addEventListener(Event.ENTER_FRAME, mouseListen);

我只需要创建一个电影剪辑,把它放在舞台上,并给它一个实例名char

文档类

   public class Test extends MovieClip
        {

            public function Test() 
            {
                char.x = 1315; char.y = 459;
                addEventListener(Event.ENTER_FRAME, mouseListen);

            }

            private function mouseListen(e:Event) {
                char.x = mouseX;
                char.y = mouseY;
            }   

        }
错误

TypeError:Error#1009:无法访问null的属性或方法 对象引用。在com.me::Test/::mouseListen()上


它怎么可能知道构造函数中的“char”是什么,而不知道
mouseListen
函数中的“char”是什么?还可能是什么?

我在本地重建了它,效果很好。跟着鼠标。还有其他丢失的代码吗?我注意到您没有包定义。这个类是主文件的文档根,还是将这个swf加载到另一个swf中

package
{
    import flash.display.*;
    import flash.events.*;

    public class Test extends MovieClip
    {

        public function Test() 
        {
            char.x = 1315; char.y = 459;
            addEventListener(Event.ENTER_FRAME, mouseListen);
        }

        private function mouseListen(e:Event) 
        {
            char.x = mouseX;
            char.y = mouseY;
        }   
    }
}

有同样的问题,只是解决它(我想)。我把我的按钮所在的图层移到了顶层,在我的代码层之上,瞧……一个愚蠢的flash东西。然后我把它移到下面一层,它仍然可以工作,只是在我原来的地方不到两层。

(1)char是一个保留字。不要用它

(2) 调试1009的第一步是在尝试更改之前进行存在性检查。它将让您确定它是否愚蠢,比如对象还没有出现在舞台上,因为它添加到了稍后的关键帧中,等等

不过,在这种情况下,您不需要这样做,因为您的范围已关闭。在事件侦听器中,由于您将其添加到了char中,因此在函数本身内部,您将获得带有“this”关键字的“char”

请尝试以下操作:

public function Test() 
    {
        char.x = 1315; char.y = 459;
        addEventListener(Event.ENTER_FRAME, mouseListen);
    }

    private function mouseListen(e:Event) 
    {
        this.x = mouseX;
        this.y = mouseY;
    } 

是的,我只是没有包括包定义。显然,它正在查找类,因为它在mouseListen()中抛出了错误。我让“char”跟随鼠标,但它首先抛出错误。另外,如果我说char.alpha=0,它就不起作用(char仍然可见)。你在舞台上给char一个实例名了吗?在flash Pref中是否启用了“自动声明阶段实例”?