AS3 объект массива в класс - PullRequest
       31

AS3 объект массива в класс

0 голосов
/ 30 августа 2011

Я новичок и у меня проблема с использованием классов в as3.Я создал массив объектов в моей основной временной шкале

    function badPlayer() 
    {
        var bads:Array = new Array();
        for (var i=0; i<5; i++) 
        {
            var mc = new bman();
            mc.name=["mc"+i];
            bads.push(mc); 
            _backGround.addChild(mc);
            mc.x = 100;
            mc.y = 100;
            trace (bads);
            Baddies(_backGround.mc); //here I am trying to export mc to my class
        }
    }

Вот фрагмент из моего класса.Мое утверждение трассировки даже не будет выводиться.

    public class Baddies extends MovieClip
{
    private var pistolSound:pistolShot = new pistolShot();
    //private var mc = new mc();
    private var _rotateSpeedMax:Number = 2;
    private var _gravity:Number = .68;
    private var _bulletSpeed:Number = 2;        
    private var _maxDistance:Number = 200;
    private var _reloadSpeed:Number = 500; //milliseconds
    private var _barrelLength:Number = 20;
    private var _bulletSpread:Number = 5;
    private var _isLoaded:Boolean = true;       
    private var _isFiring:Boolean = true;
    private var _endX:Number;
    private var _endY:Number;
    private var _startX:Number;
    private var _startY:Number;
    private var _reloadTimer:Timer;
    private var _bullets:Array = [];
    private var _gun:MovieClip;
    private var _enemy:MovieClip;
    private var _yx:Number;
    private var _yy:Number;
    private var _pcos:Number;
    private var _psin:Number;
    private var _trueRotation:Number;
    public function Baddies() 
    {
        trace("working");
        stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
    }

В основном я пытаюсь создать несколько плохих парней (bman), и к каждому из них применяется одинаковый код.Я также попытался изменить имя связывания bman на Baddies, но безуспешно.

1 Ответ

0 голосов
/ 02 сентября 2011

Есть несколько вещей, которые сильно ошибаются в этом коде.

Baddies(_backGround.mc); //here I am trying to export mc to my class

Это типовое преобразование, как уже указывалось в комментариях.Кстати, Baddies не хорошее имя, потому что это множественное число.Возможно, вы захотите создать нового плохого парня, что будет сделано с помощью этой строки:

var baddie = new Baddies();

Теперь ваш конструктор использует переменную stage.Это не будет работать, потому что объект не находится на сцене, поэтому stage равен null (он может работать, если вы перетаскиваете экземпляр на сцену в редакторе).Поэтому перед использованием stage вам действительно нужно добавить объект на сцену:

public function Baddies() {
    trace("new baddie created");
}

public function init(mc:MovieClip) {
    mc.addChild(this); // display this baddie
    trace("working");
    stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}

А в функции badPlayer:

var baddie = new Baddies();
baddie.init(_backGround);
...