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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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
Actionscript 3 在as3中添加向自身添加更多movieclip的movieclip时出错_Actionscript 3_Flash - Fatal编程技术网

Actionscript 3 在as3中添加向自身添加更多movieclip的movieclip时出错

Actionscript 3 在as3中添加向自身添加更多movieclip的movieclip时出错,actionscript-3,flash,Actionscript 3,Flash,好吧,当舞台(这个职业)是一个将玩家和敌人的电影嘴唇拉进去的职业时,它就起作用了。然后我在舞台上加了这个,在playscreen上做了另一个。。。 我不知道它为什么不起作用,但有谁能告诉我为什么不起作用,不会出现错误…您必须将可变playscreen设置为新的avoiderclass对象,如下所示: package { import flash.display.*; public class documentclass extends MovieClip {

好吧,当舞台(这个职业)是一个将玩家和敌人的电影嘴唇拉进去的职业时,它就起作用了。然后我在舞台上加了这个,在playscreen上做了另一个。。。
我不知道它为什么不起作用,但有谁能告诉我为什么不起作用,不会出现错误…

您必须将可变playscreen设置为新的avoiderclass对象,如下所示:

package  
{
    import flash.display.*;

    public class documentclass extends MovieClip
    {
        public var playscreen:avoiderclass;

        public function documentclass() 
        {
            playscreen.addEventListener(playerEvent.DEAD, onplayerdeath);
            playscreen.x = 0;
            playscreen.y = 0;
            playscreen = new avoiderclass();
            addChild(playscreen);
        }
        public function onplayerdeath(PlayerEvent:playerEvent):void
        {
            var Gameover:gameover = new gameover();
            Gameover.x = 0;
            Gameover.y = 0;
            addChild(Gameover);

            playscreen = null;
        }
    }

}
在做之前

        playscreen = new avoiderclass();
请这边试试

        playscreen.addEventListener(playerEvent.DEAD, onplayerdeath);
        playscreen.x = 0;
        playscreen.y = 0;
在这个函数中,不要忘记从displaylist中删除playscreen

public class documentclass extends MovieClip {
    public var playscreen:avoiderclass;

    public function documentclass(){
        // construct the object first
        playscreen = new avoiderclass();
        // then manipulate it.
        playscreen.addEventListener(playerEvent.DEAD, onplayerdeath);
        playscreen.x = 0;
        playscreen.y = 0;
        addChild(playscreen);
    }

怎么了?你没有真正解释什么是错的。如果没有对不起作用的内容和avoiderclass代码的描述,我们真的帮不了你多少忙。我花了一分钟来理解你的帖子,但当我意识到你基本上是在说“在你放playscreen=new avoiderclass();line…ThanksOk之前不要设置x和y”。谢谢你,试着用一种更容易理解的语言。你很好。
    public function onplayerdeath(PlayerEvent:playerEvent):void {
        var Gameover:gameover = new gameover();
        Gameover.x = 0;
        Gameover.y = 0;
        addChild(Gameover);
        // first remove the playscreen from display list
        removeChild(playscreen);
        // then set it to null, now really unreachable and eligible for gc
        playscreen = null;
    }
  }
}