我是新手,并且在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但没有成功。
答案 0 :(得分:0)
这段代码有一些问题。
Baddies(_backGround.mc); //here I am trying to export mc to my class
这是一个类型转换,正如评论中已经说明的那样。顺便说一句 Baddies 不是一个好名字,因为它是复数。你可能想要创建一个 new 坏人,这可以用这一行完成:
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);