AS3对象数组到类

时间:2011-08-29 22:57:02

标签: actionscript-3 class object instance movieclip

我是新手,并且在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 :(得分:0)

这段代码有一些问题。

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

这是一个类型转换,正如评论中已经说明的那样。顺便说一句 Baddies 不是一个好名字,因为它是复数。你可能想要创建一个 new 坏人,这可以用这一行完成:

var baddie = new Baddies();

现在您的构造函数使用stage变量。这不起作用,因为对象不在舞台上,因此stagenull(如果您将实例拖放到编辑器中的舞台,它可能会有效)。因此,在使用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);