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

1009电影剪辑错误,没有意义

  •  0
  • user3123633  · 技术社区  · 12 年前

    我正在制作一个游戏,最初我是手动将英雄电影放在舞台上。现在我将英雄添加到容器中,并将容器加载到Main.as构造函数中。

    这行出现1009错误:

    bulletOffset = 5 / _root.accuracy;
    

    下面是英雄类的相关代码:

    public class Hero extends MovieClip {
    
        private var radius:Number;
    
        //Bullet offset
        private var bulletOffset:Number;
    
        //Player variables
        private var walkingSpeed:int = 3;
    
        private var shootingRate:int = 120;
    
        private var s:int;
    
        //Making all of the items on the stage accessible by typing "_root.[ITEM]"
        private var _root:MovieClip;
    
        private var leftKeyDown:Boolean = false;
        private var upKeyDown:Boolean = false;
        private var rightKeyDown:Boolean = false;
        private var downKeyDown:Boolean = false;
        private var punchKeyDown:Boolean = false;
    
        //Player states (shooting, attacking etc)
        private var shooting:Boolean = false;
    
        public function Hero() 
        {
            addEventListener(Event.ADDED, beginClass);
        }
    
        private function beginClass(event:Event):void
        {
    
            //Determine the radius
            radius = this.width - 8;
    
            _root = MovieClip(root);
    
            bulletOffset = 5 / _root.accuracy;
    
                 blablablabla
    
    1 回复  |  直到 12 年前
        1
  •  1
  •   Marcela    12 年前

    你在听错误的事件。 Event.ADDED 将在添加到任何显示列表时激发。但你需要等待 Event.ADDED_TO_STAGE 之前 root 将提供给您:

    public function Hero() 
    {
        addEventListener(Event.ADDED_TO_STAGE, beginClass);
    }